如何在Vue Cli项目的Vue实例中渲染数据
How to render data in Vue instance of Vue Cli project
为了学习,我用Vue-Cli创建了一个Vue项目。当所有数据都存储在组件中时,它工作得很好。
但我的问题是为什么 Root Vue 实例中的数据无法在根应用程序实例上呈现。我用webpack + vue-loader也是同样的问题
main.js
import Vue from 'vue'
//import App from './App.vue'
Vue.config.productionTip = false
new Vue({
el: "#app",
data() {
return {
msg: "Hello from Vue!"
}
}
}).$mount('#app');
消息无法显示在页面 index.html
<div id="app">
{{msg}}
</div>
您正在覆盖 render 函数,渲染函数告诉您的组件应该渲染什么:
new Vue({
...
render: h => h(App)
}).$mount('#app');
删除自定义渲染函数,它将使用您安装它的元素的模板。
// import Vue from 'vue'
// import App from './App.vue'
Vue.config.productionTip = false
new Vue({
data() {
return {
msg: "Hello from Vue!"
}
},
}).$mount('#app');
<!-- development version, includes helpful console warnings -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
{{msg}}
</div>
补充@Ferrybig 的回答
您回复了 Your solution only works when we use a direct include vue.js file. Failed when use vue-cli or webpack vue-loader.
@Ferrybig 的回答。
原因是 https://cdn.jsdelivr.net/npm/vue/dist/vue.js
是 Vue 的完整构建。但默认情况下,vue-cli 使用仅运行时构建(以提高性能)。
为了为您的 vue-cli 项目使用完整的 Vue 构建,找到您的 webpack 配置并将 vue$
别名更改为如下所示:
module.exports = {
// ...
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js' // 'vue/dist/vue.common.js' for webpack 1
}
}
}
这在 https://vuejs.org/v2/guide/installation.html#Explanation-of-Different-Builds 中有解释。
为了学习,我用Vue-Cli创建了一个Vue项目。当所有数据都存储在组件中时,它工作得很好。 但我的问题是为什么 Root Vue 实例中的数据无法在根应用程序实例上呈现。我用webpack + vue-loader也是同样的问题
main.js
import Vue from 'vue'
//import App from './App.vue'
Vue.config.productionTip = false
new Vue({
el: "#app",
data() {
return {
msg: "Hello from Vue!"
}
}
}).$mount('#app');
消息无法显示在页面 index.html
<div id="app">
{{msg}}
</div>
您正在覆盖 render 函数,渲染函数告诉您的组件应该渲染什么:
new Vue({ ... render: h => h(App) }).$mount('#app');
删除自定义渲染函数,它将使用您安装它的元素的模板。
// import Vue from 'vue'
// import App from './App.vue'
Vue.config.productionTip = false
new Vue({
data() {
return {
msg: "Hello from Vue!"
}
},
}).$mount('#app');
<!-- development version, includes helpful console warnings -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
{{msg}}
</div>
补充@Ferrybig 的回答
您回复了 Your solution only works when we use a direct include vue.js file. Failed when use vue-cli or webpack vue-loader.
@Ferrybig 的回答。
原因是 https://cdn.jsdelivr.net/npm/vue/dist/vue.js
是 Vue 的完整构建。但默认情况下,vue-cli 使用仅运行时构建(以提高性能)。
为了为您的 vue-cli 项目使用完整的 Vue 构建,找到您的 webpack 配置并将 vue$
别名更改为如下所示:
module.exports = {
// ...
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js' // 'vue/dist/vue.common.js' for webpack 1
}
}
}
这在 https://vuejs.org/v2/guide/installation.html#Explanation-of-Different-Builds 中有解释。