当前位置:首页 > VUE

vue组件的实现

2026-01-06 23:28:11VUE

Vue 组件的实现方式

Vue 组件可以通过多种方式实现,以下是常见的几种方法:

单文件组件 (SFC) 使用 .vue 文件,包含模板、脚本和样式三部分:

<template>
  <div>{{ message }}</div>
</template>

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

<style scoped>
div {
  color: red;
}
</style>

选项式 API 通过 JavaScript 对象定义组件:

const MyComponent = {
  template: '<div>{{ message }}</div>',
  data() {
    return {
      message: 'Hello Vue!'
    }
  }
}

组合式 API 使用 setup 函数组织逻辑:

<script>
import { ref } from 'vue'

export default {
  setup() {
    const message = ref('Hello Vue!')
    return { message }
  }
}
</script>

组件注册

全局注册 在应用实例上全局注册组件:

import { createApp } from 'vue'
import MyComponent from './MyComponent.vue'

const app = createApp({})
app.component('my-component', MyComponent)

局部注册 在组件内部局部注册:

vue组件的实现

import ChildComponent from './ChildComponent.vue'

export default {
  components: {
    ChildComponent
  }
}

组件通信

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

<!-- 父组件 -->
<ChildComponent :title="parentTitle" />

<!-- 子组件 -->
<script>
export default {
  props: ['title']
}
</script>

自定义事件 子组件向父组件发送事件:

<!-- 子组件 -->
<button @click="$emit('custom-event', payload)">Click</button>

<!-- 父组件 -->
<ChildComponent @custom-event="handleEvent" />

Provide/Inject 跨层级组件通信:

vue组件的实现

// 祖先组件
export default {
  provide() {
    return {
      sharedData: this.sharedData
    }
  }
}

// 后代组件
export default {
  inject: ['sharedData']
}

动态组件

使用 <component> 标签实现动态组件切换:

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

异步组件

通过 defineAsyncComponent 实现按需加载:

import { defineAsyncComponent } from 'vue'

const AsyncComponent = defineAsyncComponent(() =>
  import('./AsyncComponent.vue')
)

函数式组件

无状态组件可以通过函数定义:

function FunctionalComponent(props, { slots }) {
  return h('div', props, slots.default())
}

渲染函数

使用 h() 函数直接创建虚拟 DOM:

export default {
  render() {
    return h('div', { class: 'container' }, [
      h('p', 'This is rendered content')
    ])
  }
}

以上实现方式可以根据具体需求选择,单文件组件是最常见和推荐的方式,适合大多数 Vue 应用开发场景。

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

相关文章

实现vue

实现vue

安装Vue.js 通过npm安装Vue.js是最常见的方式。确保已安装Node.js和npm,运行以下命令: npm install vue 或者使用CDN直接引入: <script s…

实现vue模版

实现vue模版

Vue 模板的基本结构 Vue 模板基于 HTML 语法,通过 Vue 的指令和插值实现动态渲染。以下是一个基础模板示例: <template> <div id="app…

vue 实现闪烁

vue 实现闪烁

Vue 实现闪烁效果的方法 方法一:使用 CSS 动画 在 Vue 组件中定义一个闪烁的 CSS 动画,通过绑定 class 或 style 来控制元素的闪烁效果。 <template>…

简单实现vue

简单实现vue

Vue 的基本实现 创建一个简单的 Vue 应用需要引入 Vue 库,并编写基本的模板和数据绑定逻辑。 <!DOCTYPE html> <html lang="en"> &l…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式数…

vue实现markdown

vue实现markdown

Vue 实现 Markdown 编辑器 在 Vue 中实现 Markdown 编辑器可以通过集成第三方库或自定义解析器完成。以下是两种常见方法: 使用第三方库(如 marked 或 markdown…