🔥 以龙息淬炼代码,在时光灰烬中重铸技术星河 !
欢迎来到
晷龙烬的博客小窝✨! 这里记录技术学习点滴,分享实用技巧,偶尔聊聊奇思妙想~原创内容✍️,转载请注明出处~感谢支持❤️!请尊重原创📩! 欢迎在评论区交流🌟!
引言
大家好!Vue的核心思想之一就是组件化 ,它能让咱们像搭积木一样构建大型应用。但很多新手朋友一听到"组件"就觉得复杂。别怕!今天我就用大白话告诉你,使用一个Vue组件,其实就三个步骤,跟泡面差不多简单:(1)准备面饼(创建组件);(2)打开包装(注册组件);(3)开水冲泡(使用组件)。跟着做,你立马就能学会!
一、第一步:创建组件 ------ 打造你的专属"积木"
组件就是一块独立的、可复用的代码模块。首先,你得把它造出来。
怎么做? 最常见的方式就是创建一个.vue单文件组件。它就像一个迷你版的Vue实例,包含三部分:模板(HTML)、逻辑(JavaScript)和样式(CSS)。
举个栗子🌰:创建一个按钮组件 我们创建一个 MyButton.vue 文件:
xml
<template>
<button class="my-btn" @click="handleClick">
<!-- 显示按钮文字 -->
{{ buttonText }}
</button>
</template>
<script>
export default {
name: 'MyButton', // 给组件起个名
props: { // 定义组件可以接收的外部参数
buttonText: {
type: String,
default: '点我呀'
}
},
methods: {
handleClick() {
// 当按钮被点击时,通知父组件
this.$emit('btn-click');
console.log('按钮被点击啦!');
}
}
}
</script>
<style scoped>
.my-btn {
padding: 10px 20px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
}
</style>
看,一个拥有自己样式、能接收参数、能触发事件的按钮"积木"就造好了!
二、第二步:注册组件 ------ 告诉Vue"我有这块积木"
组件创建好了,Vue还不知道它的存在。你需要"引入"并"注册"它,就像把新玩具登记到玩具箱里。
有两种主要的注册方式:
-
全局注册(一劳永逸) 在
main.js(或入口文件)中注册后,在任何地方都能直接用。javascript// main.js import { createApp } from 'vue'; import App from './App.vue'; import MyButton from './components/MyButton.vue'; // 1. 引入 const app = createApp(App); app.component('MyButton', MyButton); // 2. 全局注册 app.mount('#app');之后,在所有组件的模板里,你都能直接用
<MyButton />了。 -
局部注册(按需使用,更常用) 只在某个需要用的组件内部注册,这样更清晰,性能也更好。
xml<!-- ParentComponent.vue --> <template> <div> <MyButton /> </div> </template> <script> import MyButton from './MyButton.vue'; // 1. 引入 export default { components: { // 2. 局部注册 MyButton // 等价于 `MyButton: MyButton` } } </script>
三、第三步:使用组件 ------ 把"积木"摆到该放的地方
注册成功后,你就可以像使用普通HTML标签一样,在模板中使用它了。
基础使用:
xml
<template>
<div>
<h3>这是我的页面</h3>
<!-- 像用标签一样使用组件 -->
<MyButton />
</div>
</template>
进阶互动(传递参数和响应事件): 组件之所以强大,是因为它能和父组件"通信"。
- 传递数据(Props) :父组件可以向子组件传值。
- 监听事件(Emit) :子组件可以触发事件通知父组件。
xml
<template>
<div>
<MyButton
:button-text="btnText" <!-- 1. 传递动态参数 -->
@btn-click="onButtonClicked" <!-- 2. 监听子组件事件 -->
/>
<p>按钮被点击了 {{ count }} 次</p>
</div>
</template>
<script>
import MyButton from './MyButton.vue';
export default {
components: { MyButton },
data() {
return {
btnText: '快来点我!',
count: 0
};
},
methods: {
onButtonClicked() { // 3. 处理子组件触发的事件
this.count++;
console.log(`父组件知道按钮被点了,计数:${this.count}`);
}
}
}
</script>
看,一个完整的、有交互的组件使用流程就完成了!
结语
总结一下,使用Vue组件真的就三步:
- 创建 :写一个
.vue文件,定义好它的样子和行为。 - 注册 :在需要用的地方,先
import再components里挂上。 - 使用 :在模板中当标签用,并通过
props和@event与之交互。
是不是比想象中简单?组件化开发能极大地提高代码的复用性和可维护性,是Vue学习的重中之重。从今天开始,试着把你页面中的重复部分抽成组件吧!
------ 完 ------
✨ 至此结束 ✨
💡 点赞关注,解锁更多技术干货!
我是 晷龙烬 期待与你的下次相遇~
