vue实现组件开发创建
Vue 组件开发基础
在 Vue 中,组件是可复用的 Vue 实例,用于封装特定功能的代码块。组件开发通常分为全局注册和局部注册两种方式。
全局注册组件通过 Vue.component() 方法实现,适用于频繁使用的组件:
Vue.component('component-name', {
template: '<div>自定义组件内容</div>'
})
局部注册在 Vue 实例的 components 选项中声明:
new Vue({
components: {
'component-name': {
template: '<div>局部组件</div>'
}
}
})
单文件组件(SFC)
现代 Vue 项目推荐使用 .vue 单文件组件,结合 webpack 等构建工具使用。典型结构包含三个部分:

<template>
<div class="example">{{ msg }}</div>
</template>
<script>
export default {
data() {
return {
msg: 'Hello world!'
}
}
}
</script>
<style>
.example {
color: red;
}
</style>
组件通信方式
父子组件通过 props 和 events 通信:
<!-- 父组件 -->
<child-component :message="parentMsg" @update="handleUpdate"/>
<!-- 子组件 -->
<script>
export default {
props: ['message'],
methods: {
emitEvent() {
this.$emit('update', newValue)
}
}
}
</script>
跨层级组件可通过 provide/inject:
// 祖先组件
export default {
provide() {
return {
sharedData: this.sharedData
}
}
}
// 后代组件
export default {
inject: ['sharedData']
}
插槽使用
插槽实现内容分发:

<!-- 组件定义 -->
<div class="container">
<header>
<slot name="header"></slot>
</header>
<main>
<slot></slot>
</main>
</div>
<!-- 组件使用 -->
<my-component>
<template v-slot:header>
<h1>标题</h1>
</template>
<p>主要内容</p>
</my-component>
生命周期管理
重要生命周期钩子包括:
export default {
created() {
// 实例创建后
},
mounted() {
// DOM挂载后
},
updated() {
// 数据更新后
},
destroyed() {
// 实例销毁前
}
}
状态管理
复杂应用建议使用 Vuex 进行状态管理:
// store.js
export default new Vuex.Store({
state: {
count: 0
},
mutations: {
increment(state) {
state.count++
}
},
actions: {
incrementAsync({ commit }) {
setTimeout(() => {
commit('increment')
}, 1000)
}
}
})
性能优化
组件优化策略包括:
- 使用
v-if和v-show合理控制渲染 - 对静态内容使用
v-once - 大型列表使用虚拟滚动
- 计算属性缓存复杂运算
- 异步组件实现代码分割






