当前位置:首页 > VUE

vue实现组件封装

2026-03-08 01:57:51VUE

Vue 组件封装方法

基础组件封装

创建 .vue 单文件组件,包含 <template><script><style> 三部分。通过 props 接收父组件传递的数据,通过 $emit 触发自定义事件。

<template>
  <div class="custom-button" @click="handleClick">
    {{ buttonText }}
  </div>
</template>

<script>
export default {
  name: 'CustomButton',
  props: {
    buttonText: {
      type: String,
      default: 'Click Me'
    }
  },
  methods: {
    handleClick() {
      this.$emit('button-click')
    }
  }
}
</script>

<style scoped>
.custom-button {
  padding: 8px 16px;
  background-color: #42b983;
  color: white;
  border-radius: 4px;
  cursor: pointer;
}
</style>

插槽使用

通过 <slot> 实现内容分发,增强组件灵活性。具名插槽可用于多个插槽位置。

<template>
  <div class="card">
    <div class="card-header" v-if="$slots.header">
      <slot name="header"></slot>
    </div>
    <div class="card-content">
      <slot></slot>
    </div>
  </div>
</template>

组件通信

父组件通过 v-model 实现双向绑定,子组件使用 model 选项自定义。

<script>
export default {
  name: 'CustomInput',
  model: {
    prop: 'value',
    event: 'input'
  },
  props: {
    value: String
  },
  methods: {
    updateValue(e) {
      this.$emit('input', e.target.value)
    }
  }
}
</script>

高阶组件

使用 render 函数或 functional 特性创建无状态组件,提高性能。

export default {
  functional: true,
  render(h, { props, children }) {
    return h('div', { class: 'functional-component' }, children)
  }
}

全局注册

在入口文件通过 Vue.component 全局注册常用组件。

import Vue from 'vue'
import CustomButton from './components/CustomButton.vue'

Vue.component('CustomButton', CustomButton)

组件复用技巧

使用 mixins 提取公共逻辑,通过 provide/inject 实现跨层级组件通信。

vue实现组件封装

const formMixin = {
  methods: {
    validate() {
      // 公共验证逻辑
    }
  }
}

export default {
  mixins: [formMixin]
}

最佳实践

遵循单一职责原则,每个组件只做一件事。合理使用 scoped 样式避免污染。通过 prop 验证和默认值提高组件健壮性。组件命名采用 PascalCase 规范。

标签: 组件vue
分享给朋友:

相关文章

vue实现预约页面

vue实现预约页面

Vue 预约页面实现步骤 准备工作 安装Vue CLI创建项目,确保已配置好开发环境。使用vue create appointment-page初始化项目,选择默认配置或手动配置。 页面结构设计 在…

vue 指令实现

vue 指令实现

Vue 指令实现 Vue 指令是 Vue.js 提供的特殊属性,用于在 DOM 元素上添加特殊行为。指令以 v- 前缀开头,例如 v-model、v-if、v-for 等。以下是实现自定义指令和常用内…

vue功能实现

vue功能实现

Vue 功能实现指南 Vue.js 是一个渐进式 JavaScript 框架,广泛用于构建用户界面。以下是 Vue 功能的常见实现方法。 数据绑定 Vue 的核心功能之一是数据绑定,通过 v-mod…

vue实现滑块

vue实现滑块

Vue 实现滑块组件的方法 使用原生 HTML 和 Vue 指令 通过 Vue 的 v-model 和事件监听实现基础滑块功能。创建一个包含 input 元素的组件,类型设置为 range,并绑定到…

vue实现modal

vue实现modal

Vue 实现 Modal 弹窗组件 使用 Vue 实现 Modal 弹窗组件可以通过多种方式,包括原生 Vue 组件、第三方库或自定义指令。以下是几种常见方法: 原生 Vue 组件实现 创建一个基础…

vue实现计算

vue实现计算

Vue 实现计算的方法 在 Vue 中实现计算功能可以通过多种方式完成,主要包括计算属性(computed)、方法(methods)和侦听器(watch)。以下是具体的实现方法: 计算属性(Comp…