vuejs之---$mount()

所遇到问题之一:

ReferenceError: vm is not defined

[详细了解]
demo.html:108:1

深入之后发现还有后面情况 $mount手动挂载一说,此处应该写为app.$mount("#app");或者在new vue 括号里面el:#app;

Vue 的$mount()为手动挂载,在项目中可用于延时挂载(例如在挂载之前要进行一些其他操作、判断等),之后要手动挂载上。new Vue时,el和$mount并没有本质上的不同

当Vue实例没有el属性时,则该实例尚没有挂载到某个dom中;
假如需要延迟挂载,可以在之后手动调用vm.$mount()方法来挂载。例如:

new Vue({
//el: '#app',
router,
render: h => h(App)
// render: x => x(App)
// 这里的render: x => x(App)是es6的写法
// 转换过来就是:  暂且可理解为是渲染App组件
// render:(function(x){
//  return x(App);
// });
}).$mount("#app");

或者

new Vue({
el: '#app',
router,
render: h => h(App)
// render: x => x(App)
// 这里的render: x => x(App)是es6的写法
// 转换过来就是:  暂且可理解为是渲染App组件
// render:(function(x){
//  return x(App);
// });
});

顺便附上vue渲染机制流程图:




猜你喜欢

转载自blog.csdn.net/qq_39894133/article/details/79516430