1. 项目运行时+编译器(Runtime+Compiler)版本vs只含有运行时版本(Runtime-only)--尽可能使用只含有运行时的构建版本
如果你需要在客户端编译模板(例如,向 template
选项传入一个字符串,或者需要将模板中的非 DOM 的 HTML 挂载到一个元素),你需要带有编译器的版本,因而需要完整构建版本。
// 这种情况需要编译器(compiler)
new Vue({
template: '<div>{{ hi }}</div>'
})
// 这种情况不需要
new Vue({
render (h) {
return h('div', this.hi)
}
})
在使用 vue-loader
或 vueify
时,*.vue
文件中的模板会 在构建时(build time)预编译(pre-compile)为 JavaScript。最终生成的 bundle 中你不再需要编译器(compiler),因此可以直接使用只含有运行时的构建版本(runtime-only)。由于只含有运行时构建版本(runtime-only)比完整构建版本(full-build)轻量大约 30%,你应该尽可能使用只含有运行时的构建版本。
在vue-cli,src/main.js中修改如下:
new Vue({ el: '#app',
router,
store,
// components: { App },
// template: '<App/>'
render:(h)=>h(App)})
build/webpack.base.conf.js 文件中注释掉:
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
// 'vue$': 'vue/dist/vue.esm.js', //需注释的
'@': resolve('src'),
}
},
2.