网站首页 > 技术文章 正文
组件概述
在 Vue 3 中,组件是可重用的 UI 构件,可以通过组合来构建复杂的用户界面。组件允许开发者将复杂的界面拆分为更小、更易管理的部分。
组件的创建与使用
- 创建组件:
- 使用对象字面量定义组件。
- 使用 Vue.createApp() 创建应用实例,并注册组件。
- Props 和 Emits:
- Props:父组件向子组件传递数据。
- Emits:子组件向父组件发送事件。
- 组合式 API:
- 使用 setup() 函数进行逻辑处理。
- 使用 ref 和 reactive 管理响应式数据。
示例代码(Test.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入Vue3 -->
<script src="https://unpkg.com/vue@3"></script>
<title>组件的概念</title>
</head>
<body>
<div id="app">
<app />
</div>
<script>
// 定义子组件
const Hello = {
props:['message'],
emits:['updateMessage'],
setup(props,{emit}){
// 定义handleClick函数
const handleClick = () => {
emit('updateMessage','Message from child')
};
// 返回handleClick函数
return {
handleClick
};
},
// 定义模板
template: `
<dive>
<p>{{ message }}</p>
<button @click="handleClick">点击,给父组件传递消息</button>
</div>
`
};
// 定义父组件 App.
const App = {
setup(){
// 定义message变量
const message = Vue.ref('Hello from parent');
const handleEvent = (newMessage) => {
message.value = newMessage;
};
return {
// 返回message变量
message,
// 返回handleEvent函数
handleEvent
};
},
// 定义组件
components: {
Hello
},
// 定义模板
template: `
<div>
<p>子组件传过来的消息:{{ message }}</p>
<Hello :message="message" @updateMessage="handleEvent" />
</div>
`
};
// 创建应用实例并挂载
const app = Vue.createApp(App);
// 挂载到id为app的元素上
app.mount('#app');
</script>
</body>
</html>
代码解释
- 引入 Vue 3:
- 通过 CDN 引入 Vue 3 的完整版。
- 定义子组件 Hello:
- Props:接收 message 属性。
- Emits:定义 updateMessage 事件。
- Setup 函数:定义 handleClick 方法,触发事件。
- 定义父组件 App:
- Setup 函数:使用 Vue.ref 定义响应式数据 message,定义 handleEvent 方法处理子组件事件。
- Template:显示父组件的消息,并包含子组件 Hello。
- 挂载应用:
- 使用 Vue.createApp(App) 创建应用实例,并挂载到 #app 容器。
运行步骤
- 将上述代码保存为一个 .html 文件。
- 用浏览器打开该文件,查看效果。
- 点击子组件中的按钮,观察父组件消息的变化。
猜你喜欢
- 2025-01-11 手把手教你的Vue项目实战
- 2025-01-11 很香的几款开源免费的流程设计器
- 2025-01-11 测试开发如何快速上手Vue前端开发(上)
- 2025-01-11 Vue框架学习记录5
- 2025-01-11 Vue + SpringBoot 项目实战(三):我的助手之前后端联调
- 2025-01-11 Vue.js v3.0 教程-简单创建一个 Vue 应用
- 2025-01-11 超优秀 uniapp+vue3 ts 跨端组件库TMUI
- 2025-01-11 Vue3.2 语法基础详解
- 2025-01-11 .NETCore3.1+Vue.js打造的低代码工作流引擎
- 2025-01-11 无需写代码!可一键生成前后端代码的开源工具
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)