vue2创建高复用组件的方式

1.使用 v-bind="$attrs",主要用于在组件树中自动传递属性,当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定。相当于把父组件用到的属性自动获取。

 <el-button :type="getButtonType" 
    :icon="getIcon"
    v-bind="$attrs" 
    size="small"
   
    class="u-ptype-button">
    <slot></slot>
  </el-button>

2.使用 v-on="$listeners",

  • 自动传递事件监听器v-on="$listeners"会收集父作用域中的(不含.native修饰器的)v-on事件监听器,并把它们添加到当前组件的实例上。
  • 简化组件间通信:通过自动传递事件监听器,简化了父组件与子组件之间的通信方式,使得开发者可以更专注于业务逻辑的实现。
      <el-button :type="getType" 
        :icon="Icons"
        size="small"
        v-on="$listeners"
        class="ptype">
        <slot></slot>
      </el-button>

    3.如果要在子组件标签上使用v-model属性

    你可以在组件内部使用model选项来定义:

  • prop名:这个prop用于接收父组件通过v-model绑定的值。
  • event名:当子组件需要更新这个值时,它会触发一个事件,该事件的名称由model选项中的event属性指定。
    <template>
      <input
        :value="modelValue"
        @input="$emit('update:modelValue', $event.target.value)"
        type="text"
      />
    </template>
    
    <script>
    export default {
      name: 'MyCustomInput',
      props: {
        modelValue: String // 接收的值,与v-model绑定的prop名一致
      },
      emits: ['update:modelValue'], // 明确声明发出的事件
      model: {
        prop: 'modelValue', // 父组件通过v-model绑定的prop名
        event: 'update:modelValue' // 子组件触发以更新v-model的事件名
      }
    }
    </script>
    //子组件
    <MyCustomInput v-model="inputValue" />
  • 这里,v-model="inputValue"会被Vue解析为:modelValue="inputValue" @update:modelValue="inputValue = $event"

  • v-model的默认prop和event分别是modelValueupdate:modelValue。但你可以通过组件的model选项来自定义它们

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue组件封装和复用是指将代码逻辑和功能封装在一个独立的组件中,并在需要的地方重复使用该组件的过程。 Vue组件的封装可以通过以下步骤实现: 1. 创建组件:使用Vue框架提供的组件选项来创建一个组件。可以使用Vue.extend方法或者直接在Vue实例中定义一个组件。 2. 封装功能:在组件中添加业务逻辑、数据和方法等功能。可以通过计算属性、监听器、方法等实现具体的功能。 3. 编写模板:使用Vue的模板语法编写组件的结构和样式。通过将标签、属性和事件绑定到组件的数据和方法来实现交互效果。 4. 注册组件:将组件注册到Vue实例中,使其可以在其他组件中使用。可以使用Vue.component方法全局注册组件,也可以在局部组件中通过components选项注册组件。 5. 使用组件:在需要的地方使用组件,可以通过标签的方式组件插入到页面中。 通过封装组件,可以将代码逻辑和UI元素进行有效地拆分和复用。例如,可以将页面中重复出现的按钮、表单、卡片等元素封装为组件,通过复用组件来提代码的可维护性和复用性。同时,组件化的思想也使得团队协作更加效,不同开发者可以独立开发、测试和维护自己负责的组件,最终组合成完整的应用程序。 总之,Vue组件的封装和复用是一种有效的开发方式,可以提代码的可维护性和可复用性,同时也促进了团队协作和开发效率的提升。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值