vue新手,遇到了问题,这段代码为什么会报错?

我是根据官方的栗子来学的
报了这个错:
clipboard.png

html:

<div id="app-test1">
    <app-title></app-title>
    <app-content></app-content>
</div>

js:

Vue.component('app-title',{
    template: '<h3>{{ title }}</h3>'
});
Vue.component('app-content',{
    template: '<p>{{ content }}</p>'
});

var appTest1 = new Vue({
    el: '#app-test1',
    data: {
        title: '这是组件',
        content: '这是组件这是组件这是组件这是组件这是组件这是组件这是组件这是组件'
    }
});
阅读 3.8k
6 个回答

并不是data造成的,写组件时data应该才是function吧。
因为你写的是两个组件,所以父组件与子组件之间的参数传递应该要靠props,,因此需要在子组件内加入props属性,并且在html里加入v-bind。所以代码如下:

<div id="app-test1">
    <app-title :title='title'></app-title>
    <app-content :content='content'></app-content>
</div>
Vue.component('app-title',{
    template: '<h3>{{ title }}</h3>',
    props: {
      title: {
        type: String
      }
    }
});
Vue.component('app-content',{
    template: '<p>{{ content }}</p>',
    props: {
    content: {
      type: String
      }
    }
});

var appTest1 = new Vue({
    el: '#app-test1',
    data: {
            title: '这是组件',
            content: '这是组件这是组件这是组件这是组件这是组件这是组件这是组件这是组件'
    }
});

楼上几位答非所问, 那是子组件访问不了父组件属性。 想要访问父组件属性要加 props去接收父组件属性来进行通信。

title,header,footer等属于关键字.建议更换一下.另外-最好使用_代替或者使用驼峰命名法.

data应该这样写

data () {
  return {
    title: '这是组件'
    ...
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题