额 那个。。刚注意到时.vue文件。。vue文件就不太可行了,因为vue文件本身时经过vue-loader等webpack处理编译过的,否则时没办法识别包括模板、样式、es6语法等问题。但是如果可以通过下面的方法来写vue实例,模板可以用render函数来写,然后动态挂载,应该就没问题了 再更新。。。 刚刚又看了vue官网介绍,runtime+Compiler,可以实现模板直接html不需要用render,楼主可以研究下vue编译器vue-el理论上时可以实现的 参看vue官网api,Vue.extend介绍我写的demo <html> <head> <script src="https://cdn.jsdelivr.net/npm/vue"></script> </head> <body> <div id="app"> <p>{{ message }}</p> <input type="text" v-model="message"/> <button @click="dynamicMount">动态挂载vue</button> <div id="mount-point"> </div> </div> <script> new Vue({ el: '#app', data: { message:'Hello World!' }, created() { this.dynamicMount = function() { let Profile = Vue.extend({ template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>', data: function () { return { firstName: 'Walter', lastName: 'White', alias: 'Heisenberg' } } }) // 创建 Profile 实例,并挂载到一个元素上。 new Profile().$mount('#mount-point') } } }) </script> </body> </html>
那要看请求的这个文件有没有其它特殊的语法,如果只是html语法和css语法,vue语法,是没有问题的,如果这个请求文件的内容是一个组件,那就把文件的内容读出来直接赋值给页面script标签,或者把html代码直接赋值到vue.extend中的template变量就可以
额
那个。。刚注意到时.vue文件。。vue文件就不太可行了,因为vue文件本身时经过vue-loader等webpack处理编译过的,否则时没办法识别包括模板、样式、es6语法等问题。但是如果可以通过下面的方法来写vue实例,模板可以用render函数来写,然后动态挂载,应该就没问题了
再更新。。。
刚刚又看了vue官网介绍,runtime+Compiler,可以实现模板直接html不需要用render,楼主可以研究下
vue编译器
vue-el
理论上时可以实现的 参看vue官网api,Vue.extend介绍
我写的demo