当前位置:首页 > VUE

vue实现组件化

2026-01-18 13:35:49VUE

Vue 组件化实现方法

组件定义

使用 .vue 单文件组件格式,包含 <template><script><style> 三个部分:

<template>
  <div class="example">{{ msg }}</div>
</template>

<script>
export default {
  data() {
    return {
      msg: 'Hello Component!'
    }
  }
}
</script>

<style scoped>
.example {
  color: red;
}
</style>

组件注册

全局注册通过 Vue.component() 实现:

import Vue from 'vue'
import MyComponent from './MyComponent.vue'

Vue.component('MyComponent', MyComponent)

局部注册在父组件中完成:

import ChildComponent from './ChildComponent.vue'

export default {
  components: {
    ChildComponent
  }
}

Props 数据传递

父组件向子组件传递数据:

<ChildComponent :title="parentTitle" />

子组件接收 props:

export default {
  props: {
    title: {
      type: String,
      required: true
    }
  }
}

自定义事件通信

子组件触发事件:

this.$emit('update', newValue)

父组件监听事件:

vue实现组件化

<ChildComponent @update="handleUpdate" />

插槽内容分发

默认插槽使用:

<!-- 子组件 -->
<slot></slot>

<!-- 父组件 -->
<ChildComponent>默认内容</ChildComponent>

具名插槽实现:

<!-- 子组件 -->
<slot name="header"></slot>

<!-- 父组件 -->
<template v-slot:header>
  头部内容
</template>

动态组件切换

通过 :is 属性实现:

<component :is="currentComponent"></component>

组件生命周期

关键生命周期钩子示例:

vue实现组件化

export default {
  created() {
    // 实例创建后执行
  },
  mounted() {
    // DOM挂载后执行
  },
  beforeDestroy() {
    // 实例销毁前清理
  }
}

混入复用逻辑

创建 mixin 文件:

// mixin.js
export default {
  methods: {
    sharedMethod() {
      // 共享方法
    }
  }
}

组件中使用:

import myMixin from './mixin'

export default {
  mixins: [myMixin]
}

组件间依赖注入

祖先组件提供数据:

export default {
  provide() {
    return {
      theme: 'dark'
    }
  }
}

后代组件注入数据:

export default {
  inject: ['theme']
}

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

相关文章

vue实现前端分离

vue实现前端分离

Vue 实现前后端分离 前后端分离是一种架构模式,前端负责页面渲染和交互逻辑,后端提供数据接口。Vue.js 作为前端框架,非常适合实现前后端分离的开发模式。 核心实现步骤 创建 Vue 项目 使用…

vue实现网页切换

vue实现网页切换

Vue 实现网页切换的方法 在 Vue 中实现网页切换通常可以通过以下几种方式完成,具体取决于项目需求和路由管理方式。 使用 Vue Router Vue Router 是 Vue.js 官方提供的…

vue表格重置怎么实现

vue表格重置怎么实现

重置表格数据的方法 在Vue中重置表格数据通常需要操作绑定的数据源,以下是几种常见实现方式: 直接重置数据源 // 假设表格绑定的是tableData this.tableData = [..…

vue如何实现目录组件

vue如何实现目录组件

Vue 目录组件实现方法 基于递归组件实现树形目录 递归组件适合处理嵌套层级不确定的目录结构。创建一个可自调用的组件,通过 v-for 遍历子节点并递归渲染自身。 <template&g…

vue中登陆实现逻辑

vue中登陆实现逻辑

Vue 中登录实现逻辑 前端实现逻辑 表单验证 使用 Vue 的表单验证库(如 VeeValidate)或自定义验证规则,确保用户输入的账号和密码符合要求。例如,检查邮箱格式、密码长度等。 发送登录…

vue实现密码框的包

vue实现密码框的包

Vue 密码框实现方案 在 Vue 中实现密码框功能,可以通过原生 HTML 结合 Vue 指令或使用第三方组件库完成。以下是几种常见方案: 原生 HTML + Vue 双向绑定 <temp…