您当前的位置: 首页 > 

53Vue - 组件的使用(data 必须是函数)

杨林伟 发布时间:2019-07-29 10:38:52 ,浏览量:4

使用组件时,大多数选项可以被传入到 Vue 构造器中,有一个例外: data必须是函数。 实际上,如果你这么做:

Vue.component('my-component', {
  template: '{{ message }}',
  data: {
    message: 'hello'
  }
})

那么 Vue 会在控制台发出警告,告诉你在组件中 data 必须是一个函数。最好理解这种规则的存在意义。

HTML代码:

JS代码:

var data = { counter: 0 }
Vue.component('simple-counter', {
  template: '{{ counter }}',
  // data 是一个函数,因此 Vue 不会警告,
  // 但是我们为每一个组件返回了同一个对象引用
  data: function () {
    return data
  }
})
new Vue({
  el: '#example-2'
})

效果图: 在这里插入图片描述 由于这三个组件共享了同一个 data , 因此增加一个 counter 会影响所有组件!我们可以通过为每个组件返回新的 data 对象来解决这个问题:

data: function () {
  return {
    counter: 0
  }
}

现在每个 counter 都有它自己内部的状态了:

在这里插入图片描述

关注
打赏
1688896170
查看更多评论

杨林伟

暂无认证

  • 4浏览

    0关注

    3183博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0495s