组件

2018-09-29  本文已影响0人  真的吗_a951

使用组件的原因

可以极大的提高代码的复用性

组件的使用方法

全局:

Vue.component(tag,{
    template:'<div></div>'
})

局部:

//局部注册
components: {
    'app-component': {
    template: '<div>我是局部</div>'
}

全局注册:
优点:所有Vue实例都可以用
缺点:权限太大,容错率低,不能使用驼峰式命名


Vue组件的模板在某些情况下会受到HTML标签的限制,比如在<table>中只能有<tr>,<td>,<tbody>,直接在table中使用组件是无效的,可以用is属性来挂载组件

<table>
    <tbody is='isTable'></tbody>
</table>

小技巧


父组件向子组件传递

通过props传递数据是单向的,也就是父组件可以传递给子组件,但是子组件变化不会传递给父组件

两种应用场景
一、: 父组件传递初始值进来,子组件将初始值保存起来,在自己的作用域下可以随意使用和修改,这种情况可以在组件data内再声明一个数据,引用父组件的props
步骤:
1.注册组件
2.将父组件的数据传递进来,并在子组件中用props接收
3.将传递进来的数据通过初始值保存起来

数据验证

命名(驼峰式命名和与短横线命名)


验证的type类型可以是:

数字
→验证类型时props是一个对象

props:{
  num:Number//如果是一个数字类型的就会输出
}

→如果可以同时是几个类型,只需添加一个数组

props:{
  a: [Number,String]

→如果指定类型,同时有很多选项(type【类型】-require【是否必传】-default【指定默认值】),要用对象

props:{
  a: {
    type: Boolean,
    default: true
}

数组
→数组的默认值用函数return出来

props:{
  a:type:Array,
  default:function(){
    return [***]
  }
}

自定义一个验证函数validator

props:{
  validator:function(value){
    return value>10//假如定义的是一个数字,用来判断
  }
}
上一篇 下一篇

猜你喜欢

热点阅读