首页>>前端>>Vue->vue引入html作为模块?

vue引入html作为模块?

时间:2023-12-02 本站 点击:0

vue组件中怎么引入html文件?

1、HtmlPanel.vue文件

template div  mu-circular-progress :size="40" v-if="loading"/  div v-html="html"/div /div/templatestyle /stylescript export default{  // 使用时请使用 :url.sync=""传值  props: {   url: {    required: true   }  },  data () {   return {    loading: false,    html: ''   }  },  watch: {   url (value) {    this.load(value)   }  },  mounted () {   this.load(this.url)  },  methods: {   load (url) {    if (url url.length 0) {     // 加载中     this.loading = true     let param = {      accept:'text/html,text/plain'     }     this.$http.get(url, param).then((response) = {      this.loading = false      // 处理HTML显示      this.html = response.data     }).catch(() = {      this.loading = false      this.html = '加载失败'     })    }   }  } }/script

htmlViewSample.vue

?

12345678910111213141516171819202122232425

template div  v-html-panel :url.asyc="url1"/v-html-panel  v-html-panel :url.asyc="url2"/v-html-panel /div/templatestyle scoped div{color:red}/stylescript export default{  data () {   return {    url1: '',    url2: ''   }  },  mounted () {   this.url1 = ''   this.url2 = ''  },  methods: {  } }

/script

2、效果图

3、注意事项:

直接使用axios处理的GET请求,需要处理跨域;

外部的css样式会作用到显示的html;

同时加载的外部html里的script也可能会执行,需要按需处理下;

外部HTML文件内部的相对路径将不会被自动识别,绝对路径可以。

vue怎么导入html文件

在head标签中引入vue的js文件。

1、新建html文档,然后在head标签中引入vue的js文件,这里以引入cdn文件为例。2、在body标签中添加一个id为“app”的div标签,然后在这个div标签中再添加一个div标签,在vue中添加一个变量数据,然后用“{{}}”符号将变量引入到div标签中,并且在标签中添加“v-html="变量"v-html="变量"”属性。3、用浏览器打开html文档,这时可以在页面中看到被v-html指令添加的html元素。

vue组件中怎么引入html文件

vue组件中引入html文件

script type="text/template" id="tpl"

--

/script

js:

var MyComponent = Vue.extend({

template: '#tpl'

});

如何利用Vue.js库中的v-html指令添加html元素

第一步,创建静态页面vhtml.html,并引入vue.js文件

第二步,在body/body元素内插入两个div,一个作为外层div,另外一个作为子div,并在父div绑定v-html指令

第三步,绑定v-html指令数据,这里设置为字符串

第四步,Vue.js库的v-html指令是插入html元素,修改datas为包含p/p标签

第五步,预览该静态页面,这时会看到页面显示为逗v-html指令地

第六步,将调试打开,这时发现div/div中有个p/p标签

vue-cli2 组件内嵌HTML文件

(如有错误,欢迎指正~~)

在Vue要使用文件上传,找到一个bootstrap编写好的demo,打算直接用,嵌入vue中。demo主要使用jquery和webuploader,jquery和webuploader引用是使用script引入的。要兼容现在的Vue项目。

实验一:

打算在Vue的组件里使用script引入demo里同样引入的文件,发现文件没有被引用进来。

实验二:

打算将script引入文件的语句写成字符串,然后将字符串赋值给Vue组件内的元素的innerHTML里,发现项目报错,原因是innerHTML不允许写入script的内容,百度上说可以使用jquery来实现,试了一下一样不可以。百度一下Vue如何内容HTML,网上说用v-html里面放HTML,然后发现会报同样的错误。

实验三:

前面嵌入HTML文件的内容都失败了,就打算直接嵌入整个HTML文件。可以使用iframe实现内嵌HTML文件,如"iframe frameborder=”no” style=”width:100%;height:500px;” src=”upload.html” ref=”iframe”/iframe",将upload.html文件和内嵌它的Vue文件放在同一个额文件夹下,运行,界面iframe内显示"GET NO / upload.html",打开浏览器调试器发现,upload.html它的读取位置是项目的根目录下,修改src使浏览器可以读到upload.html对应的位置。

项目打包发布:

在项目打包发布到服务器的时候发现,使用iframe内嵌的HTML文件报错,由于个人对webpack不熟悉,不知道upload.html有没有打包进去。webpack打包HTML文件,在webpack.prod.conf.js文件中的webpackConfig的pulgins中添加

        发现webpack打包文件的时候,会把upload.html拎出来放打包下的static文件夹下的upload文件夹,发布服务器的时候发现upload.html照样没有显示出来,进入打包后的upload.html中,upload.html引用js找不到,js应该没有打包进来或者打包进来路径变了。使用important在HTML中引用js文件,打包后发布到服务器还是一样的问题。想着用requirejs去加载HTML,看能不能把HTML和HTML引用的js文件正确打包,由于可以参考内容过少,无从下手。

        不打包内嵌HTML了,把upload.html及引用文件放在一个文件夹下,加到webpack打包出来的dist的static文件夹下,将webpack中打包 调用upload.html路径的js调用路径内容改为在dist对应的路径,发布到服务器上文件终于可以使用了。(现在才想到可以配置webpack将upload.html及引用文件从打包独立出来)。

后续:

        项目从vue-cli2升级到vue-cli3,之前用的方式不适用了。

        vue-cli3用iframe嵌入HTML,HTML要放在public的static文件夹下,在iframe的src调用中,直接写"static/upload.html"就可以了。相较于vue-cli2,内嵌的HTML打包后不用上面的笨办法了。

        在内嵌的HTML页面,要求与后端的通讯要带上token,试着用js-cookie插件获取当前vue里的token,存入sessionStorage,再在内嵌的HTML页面获取sessionStorage,在本地运行是可以的,打包给后端部署后,在内嵌的HTML获取sessionStorage的值是null,不知道为什么。

        后面就在与后端通讯的js里使用jquery-cookie获取token,这个插件是基于jquery的,在引入该文件要先引入jquery

        uploader.js的请求添加请求头参数


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Vue/9397.html