组件

作者: 真的吗_a951 | 来源:发表于2018-09-29 17:00 被阅读0次

使用组件的原因

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

组件的使用方法

全局:

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>

小技巧

  • 使用小写字母加-的方式进行命名
  • template的内容必须被DOM元素(标签)包裹,可以嵌套
  • 在组件定义中,除了template外还可以使用vue实例中的methods,data,computed
  • data必须是一个function

父组件向子组件传递

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

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

  • props接收参数,在props中定义的属性,都可以在组件中直接使用
  • props来自父级,而组件中的date return的数据就是组件自己的数据,两种情况作用域就是组件本身,可以在template,complete,methods中直接使用
  • props的值有两种,一种是字符串数组,一种是对象
    二、:prop作为需要被转变的原始值传入,这种情况用计算属性就可以了
    步骤
    1.注册组件
    2.将度组件的数据传递进来,并在子组件中用prop接收
    3.将传递进来的数据通过计算属性进行重新计算

数据验证

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

  • 在html中所有大写都会转换成小写,不允许使用驼峰
  • 在组件中,父组件给子组件传递数据,必须用短横线,在template组件中,必须使用驼峰,若用短横线命名,会直接报错
  • 在组件的data中,用this.xxx引用时,只能是驼峰命名方式,若为短横线命名会报错

验证的type类型可以是:

  • String
  • Number
  • Boolean
  • Object
  • Array
  • Function

数字
→验证类型时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//假如定义的是一个数字,用来判断
  }
}

相关文章

网友评论

      本文标题:组件

      本文链接:https://www.haomeiwen.com/subject/jdcvoftx.html