vue组件封装

1、封装组件的目的
把业务逻辑相同,高度重复的代码封装起来,为了提高代码的复用,减少代码的冗余。
2、组件使用
(1)引用

import navs from '@/views/nav/index'

(2)注册

components:{
   
  'v-nav':navs
}

(3)使用

< v-nav> < /v-nav>

3、组件三要素

属性:props属性 ,inheritAttrs属性
事件:event
插槽:slot

(1)属性:
数据从父组件传到子组件props属性

父对子传参,就需要用到 props,通常的 props 是这样的:

props:[‘data’,‘type’]

但是通用组件的的应用场景比较复杂,对 props 传递的参数应该添加一些验证规则,常用格式如下:

props:{
   
// 基础类型检测 (`null` 意思是任何类型都可以)
 propA: Number,
 // 多种类型
 propB: [String, Number]
  // 必传且是字符串
    propC: {
   
      type: String,
      required: true //必须传
    },
     // 数字,有默认值
    propD: {
   
      type: Number,
      default: 100  //default默认值,默认是100
    },
    // 数组/对象的默认值应当由一个工厂函数返回
    propE: {
   
      type: Object,
      default: function () {
   
        return {
    message: 'hello' }
      }
    },
    // 自定义验证函数
    propF: {
   
      validator: function (value) {
   
        return value > 10
      }
    }

inheritAttrs属性
vue官网对于inheritAttrs的属性解释:如果你不希望组件的根元素继承特性,你可以在组件的选项中设置 inheritAttrs: false。

举个例子来验证一下。

父组件 parent-component.vue

<template>
 <div class="parent">
    <child-component aaa="1111"></child-component>
  </div>
</template>
<script>
import ChildComponent from './child-component'
export default {
   
  components: {
   
    ChildComponent
  }
}
</script>

子组件 child-component.vue 设置 inheritAttrs: true(默认)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值