高级前端-Vue组件世界

1. 自定义指令

2. 数据双向绑定::value + @input

v-model作用于表单元素

自定义组件使用v-model之后,父组件不用再监听子组件的事件触发

.sync语法糖

3. 组件通信

1. 跨层级访问:$emit,组件过多时会很麻烦,vue提供了$root和$parent两个属性(强耦合),访问组件根节点和父节点,父组件通过ref访问子组件

2. 依赖注入:父组件provide对应属性,子组件通过injected去使用provide提供的数据,injected的内部通过$parent往父节点找对应的属性,所以依然还是强耦合

3. 组件二次封装:修改第三方库样式的时候,使用>>>,就可以了,不用再单独开一个style

这是一个对element input的组件的二次封装,vue提供了$attrs和$listeners,方便开发二次封装,这样就不用单独去实现自定义组件的v-model,还有el-input对应的各个方法

4. vue插件

Mixins: 生命周期钩子函数在组件的钩子函数之前执行,methods如果有重名的,使用组件中的method

插件:Vue.use(plugin)

5. vue代码的复用方案:

1. Mixin

2. HOC Hihger order component 函数接收组件作为参数,并返回一个新的组件

3. RenderLess组件

// 带插槽的父组件 SearchWrapper.vue
<slot name="searchContent" :data="advanced" />

// 子组件中使用父组件的数据
<search-wrapper @search="searchWarehouseAreaList" @reset="resetForm">
        <a-form-model ref="searchForm"
          :labelCol="{ span: 5 }"
          :wrapperCol="{ span: 18, offset: 1 }"
          :model="searchModel"
          layout="horizontal"
          slot="searchContent"
          slot-scope="scopeData"> // 这里的scopeData.data指向父组件的:data,也就是advanced

  • 19
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值