【发布时间】:2017-04-14 16:35:20
【问题描述】:
我有一个文件组件header.vue:
<template>
<h1>{{text}}</h1>
</template>
<script>
export default {
data() {
return {
text: 'Header text',
};
},
};
</script>
我在我的代码中要求它如下
const Header = require('components/header.vue');
然后称呼它:
const header = new Vue({
el: '#header',
data: {
text: 'New header text',
},
render: h => h(Header),
});
组件已渲染,但文本显示 Header text 而不是 New header text。为什么?
【问题讨论】:
-
我想您想通过其他组件等动态设置标题标题?或者你想达到什么目标?
-
您正在创建一个新的 Vue 组件,它将 Header 组件呈现为其子组件。来自父组件的数据不会以这种方式影响子组件的数据。您可以
Vue.extend()Header 组件,然后用重写的数据属性实例化 that。 -
@DecadeMoon 所以你的意思是
const Header = Vue.extend(require('components/header.vue'));,然后是new Header({ el: ..., data: { ... } });,对吧?这可行,但扩展导入看起来有点奇怪。这真的有必要吗?
标签: vue.js vue-component