什么是组件?
组件是 Vue.js 中可复用的独立模块,用于构建用户界面。
通过组件,你可以将功能、样式和逻辑封装,实现代码解耦与高效维护。
✅ 核心价值:
- 提高开发效率
- 便于团队协作
- 降低代码冗余
组件开发基础
1. 组件创建方式
- 单文件组件(
.vue
文件)<template> <div>组件内容</div> </template> <script> export default { name: 'MyComponent', data() { return { msg: 'Hello Vue!' } } } </script>
- 注册组件
// 全局注册 Vue.component('my-component', { template: '<p>全局组件</p>' }) // 局部注册 components: { 'my-component': { template: '<p>局部组件</p>' } }
2. props 传递数据
使用 props
实现父子组件通信:
props: ['title', 'count']
📦 数据流向:父组件 → 子组件
🤝 注意事项:
- 数据是单向流动的
- 使用
v-bind
动态绑定值
高级技巧
1. 组件通信
- 父子通信:
$emit
+props
- 兄弟通信:事件总线(
EventBus
) - 全局状态管理:VueX(了解更多)
2. 生命周期钩子
⏳ 常见钩子:
created()
:组件创建时调用mounted()
:挂载到 DOM 后调用updated()
:数据更新时调用beforeDestroy()
:销毁前调用
3. 插槽(Slots)
自定义组件内容区域:
<template>
<div>
<slot>默认内容</slot>
</div>
</template>
📌 作用:允许用户替换组件内部的特定部分
最佳实践
- 使用
keep-alive
缓存动态组件(点击查看) - 通过
mixins
复用逻辑 - 遵循组件命名规范(如
BaseInput
、UserCard
)
🚀 优化建议:
- 避免在
template
中使用复杂逻辑 - 合理使用
v-model
实现双向绑定
扩展学习
- 想深入了解 Vue Router 的使用?请访问 /community/video_tutorials/vue_js/vue_router
- 探索组件库设计模式:组件库开发指南