Vue组件学习

知识要点(基础)

  • Vue实例以及Component注册都是通过选项完成的
  • props 表示是你可以在组件上注册的一些自定义特性,组件实例上的一个属性
  • 使用v-bind来动态渲染内容
  • 每个组件模板都需要一个根元素
  • 通过事件来向父级组件发消息,触发: emit(event[,arg]),:von:event使 e m i t ( ‘ e v e n t ′ [ , a r g ] ) , 监 听 : v − o n : e v e n t 使 用 事 件 抛 出 一 个 值 , 可 以 用 event访问,如果父组件的监听函数是一个方法,则作为第一个参数传入,如上arg,注意这是用在组件上,例如原生input是$event.target.value
  • 和HTML文件一样,需要向一个组件传递内容,可以使用slot

组件进阶

组件注册

  • 组件命名是需要小写加连字符,直接在DOM中使用,kebab-case
  • pascalCase在单文件中可以使用
  • 局部注册是通过Vue实例选项进行注册的
  • 模块系统import/require
  • 学习webpack后记得回来理解基础组件的自动化全局注册(*)

props

  • HTML中的特性名是不区分大小写的,意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名
  • 静态传递props,动态传递(使用v-bind:),传数字、bool值、数组以及对象的时候需要动态传递
  • 单向数据流:初始值使用data, prop需要转化是使用computed
  • prop验证:类型检查、默认值、必须值
  • 注意非prop特性会添加到这个组件的根元素上,当不希望添加到根元素上时可以声明inheritAttrs:false
  • 外部传入特性会替代内部特性,而class,style比较智能,会合并
  • $attrs允许你在使用基础组件的时候更像是使用原始的 HTML 元素,而不会担心哪个元素是真正的根元素

自定义事件

  • 推荐使用kebab-case事件名
  • 自定义组件的v-model语法糖
  • 通过 listener l i s t e n e r 将 事 件 监 听 器 指 向 子 元 素 , listener包含了作用于该组件的所有监听器
  • object.assign(target, …sources)将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
  • .sync修饰符,突破单向数据流,用于对一个prop进行“双向绑定”

插槽

  • 将元素作为承载分发内容的出口,没有传入元素将会被抛弃
  • 子组件, 父组件
  • 作用域插槽,解构slot-scope

动态组件&异步组件

  • 动态组件为防止Vue每次都新建一个Component实例,可以用包裹起来
  • 异步组件,(resolve, reject) , promise, 还可以返回一个对象处理加载状态

边界情况

特殊情况,先暂时不学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值