深入了解组件

2019-01-28  本文已影响0人  A郑家庆

组件注册

  组件注册分为全局注册和局部注册
  全局注册

Vue.component(tagName, options)
// tagName为组件名,options为配置选项
// 例子:
<div id="app">
    <runoob></runoob>
</div>
 
<script>
// 注册
Vue.component('runoob', {
  template: '<h1>自定义组件!</h1>'
})
// 创建根实例
new Vue({
  el: '#app'
})
</script>

  局部注册

new Vue({
  el: '#app',
  components: {
    'component-a': ComponentA,
    'component-b': ComponentB
  }
})

  基础组件的自动化全局注册
可能你的许多组件只是包裹了一个输入框或按钮之类的元素,是相对通用的。我们有时候会把它们称为基础组件,它们会在各个组件中被频繁的用到,那么就可以使用 require.context 只全局注册这些非常通用的基础组件。

prop

  注意在 JavaScript 中对象和数组是通过引用传入的,所以对于一个数组或对象类型的 prop 来说,在子组件中改变这个对象或数组本身将会影响到父组件的状态。
  注意那些 prop 会在一个组件实例创建之前进行验证,所以实例的属性 (如 data、computed 等) 在 default 或 validator 函数中是不可用的。

非prop特性

  一个非prop特性是指传向一个组件,但是该组件并没有相应prop定义的特性。

<bootstrap-date-input :data-date-picker="activated"></bootstrap-date-input>

上面的activated数据是在父组件中决定的,这时候子组件需要data-date-picker这个属性来显示不同的样式,这时候子组件可以用props接受这个数据,然后在根元素上去显示,也可以不写props,data-date-picker这个属性也会自动添加到子组件的根元素上。

上一篇下一篇

猜你喜欢

热点阅读