当前位置:首页 > VUE

vue组件如何实现

2026-01-19 03:03:29VUE

Vue 组件实现方法

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

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

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

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

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

选项式 API 使用传统的选项对象定义组件:

Vue.component('example-component', {
  template: '<div>{{ message }}</div>',
  data() {
    return {
      message: 'Hello Vue!'
    }
  }
})

组合式 API 使用 setup() 函数(Vue 3+):

import { ref } from 'vue'

export default {
  setup() {
    const count = ref(0)
    return { count }
  },
  template: '<button @click="count++">{{ count }}</button>'
}

组件注册方式

全局注册

Vue.component('my-component', {
  // 选项
})

局部注册

const ComponentA = { /* ... */ }
const ComponentB = { /* ... */ }

new Vue({
  el: '#app',
  components: {
    'component-a': ComponentA,
    'component-b': ComponentB
  }
})

组件通信方式

Props 向下传递

Vue.component('child', {
  props: ['message'],
  template: '<span>{{ message }}</span>'
})

事件向上传递

Vue.component('child', {
  methods: {
    sendMessage() {
      this.$emit('message', 'Hello from child')
    }
  }
})

使用 provide/inject

// 父组件
export default {
  provide() {
    return {
      theme: 'dark'
    }
  }
}

// 子组件
export default {
  inject: ['theme']
}

动态组件实现

使用 <component> 元素配合 is 特性:

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

<script>
import ComponentA from './ComponentA.vue'
import ComponentB from './ComponentB.vue'

export default {
  data() {
    return {
      currentComponent: 'ComponentA'
    }
  },
  components: { ComponentA, ComponentB }
}
</script>

vue组件如何实现

分享给朋友:

相关文章

vue中如何实现循环

vue中如何实现循环

在 Vue 中实现循环 Vue 提供了 v-for 指令用于实现循环渲染列表数据。v-for 可以遍历数组、对象或数字范围,生成动态的 DOM 元素。 遍历数组 使用 v-for 遍历数组时,语法为…

vue穿梭框组件实现

vue穿梭框组件实现

实现基础穿梭框组件 在Vue中实现穿梭框组件,可以使用<el-transfer>(Element UI)或手动实现。以下是手动实现的核心逻辑: <template> &l…

vue如何实现默认页面

vue如何实现默认页面

实现 Vue 默认页面的方法 在 Vue 中实现默认页面通常涉及路由配置。以下是几种常见的方法: 使用路由重定向 在 Vue Router 配置中,可以通过 redirect 属性设置默认路由:…

vue实现下拉刷新组件

vue实现下拉刷新组件

实现下拉刷新组件的核心思路 下拉刷新功能通常通过监听触摸事件、滚动位置和动画效果实现。Vue中可以利用自定义指令或封装组件完成,以下为两种常见实现方式。 基于自定义指令的实现 创建指令监听触摸事件,…

vue 组件实现

vue 组件实现

Vue 组件实现方法 单文件组件 (SFC) 使用 .vue 文件格式,包含模板、脚本和样式三部分: <template> <div class="example">{{…

vue实现组件拖放

vue实现组件拖放

Vue 实现组件拖放的方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…