vue这么动态引入vue文件?
发布于 6 年前 作者 mcck 3491 次浏览 来自 问答

我需要在vue项目运行时引入新的vue文件,该文件是服务器生成的通过ajax请求回去的,请问如何实现这个功能?

4 回复

或者这么在vue的<template>标签内包含<script>和<style>标签

0.思考一下是不是真的必须动态引入vue文件,有没有什么更好的替代方法
1.获取vue文件
2.把template部分直接以html形式加入到要加入的dom下,并给它一个id和一个data-id的attribute
3.script部分,解析那个export default的obj,令这个obj.el=#id,直接添加一个script标签然后new Vue(obj)
4.style部分给每个样式加上[data-id]选择器(用来模拟scoped)(不过既然已经有了id其实直接用id来限定scope就可以了)然后扔进一个新的style标签
5.上面的方法其实还有很多要考虑的问题,所以还是建议找找其他不用动态引入vue的方法

const initComp = (element) => {
	new Vue({
		el: element,
		data: {},
		render: (h) => h(something)
	})
}

编译成 js ,运行即可,不知道能不能成功,你试一下。

@dislido 非常感谢您能解答,现在改成了用ifream代替,直接返回一个html文件

回到顶部