vue.extend 为什么会渲染失败?
想用vue.extend创建一个组件挂载到指定dom下,但是好像渲染不出来,是不是我使用上有什么错误呢?:
testDiv原始结构:
<div id="testDiv">10000</div>
vue.extend逻辑:
let tempCom = Vue.extend({ template: '<div>123123</div>'
})
setTimeout(() => {
let t = new tempCom().$mount()
document.getElementById('testDiv').appendChild(t.$el)
}, 3000);
逻辑执行后:
回答:
我不是很认同1楼和2楼的,并且我认为extend是可以使用的。
只是目前看起来是有问题的,请问控制台有警告嘛。
如果存在的话,可能是vue没编译模块导致template的无法支持加载。
应该有这句。
You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.
可以尝试直接使用render进行组件渲染。
const E = Vue.extend({ render: (h) => h(HelloWorldVue),
});
const e = new E({
// el: "#t"
});
const t = e.$mount();
// e.$mount().$el;
console.log(t.$el);
document.documentElement.appendChild(t.$el)
或者如果有警告就开启 vue.config.js 的 runtimeCompiler
参数
回答:
你需要 new Vue
而不是 Vue.extend
回答:
同1楼,你需要去 new
一个 vue
实例出来,然后再在实例内部去继承。
但是我看你想要做的其实并不是继承一个已有的Vue组件,所以其实你是需求是新建一个Vue实例去渲染在目标Dom内部。
以上是 vue.extend 为什么会渲染失败? 的全部内容, 来源链接: utcz.com/p/932825.html