Vue2几种常见开局方式详解
在SF问题中看到了一个关于vue-cli中的template问题,问题是这样的:
用vue-cli工具生成的main.js中:
importVuefrom'vue' importAppfrom'./App' importrouterfrom'./router' Vue.config.productionTip=false /*eslint-disableno-new*/ newVue({ el:'#app', router, template:'', components:{App} })
然后问友的问题是:
【template:'
是指使用app.vue模板吗?但在vue没有看到这样的用法哦!
里面只有:
1template:'#xxx'根据id获取
2template:'
请问有没有相关的文档解释呢?
看到这个问题,其实就是vue的开局方式写法总结。
Vue2加了reader选项后,再加上几种构建方式,开局方式真是各种五花八门,这里列几种常见的,说说注意点
我们先建立一个app.vue来当入口组件,即所有页面都会以这个组件为模板(下面代码中无特别说明,App即指下面这个组件)
方式1
模板文件:
注意:vue2已经不支持直接绑定在body和html元素上,所以我们需要在body里写个挂载元素
main.js入口文件:
importAppfrom'./app.vue' newVue({ el:'#app', render:creatElment=>creatElment(App) })
这里的采用es6的写法,转出es5就是
render:funciton(creatElment){ returncreatElment(App) }
creatElment的第一个参数可以是String(HTML标签名称)|Object(组件对象)|Function(函数),这里传的就是个组件对象
注意:这种情况下,App组件并不是根组件
方式2
模板文件: