vue3中如何编写一个组件---demo

news/2024/11/17 17:26:18/

当使用 Vue 3 来开发组件时,可以使用 Composition API 来定义组件逻辑和实现组件传值。下面是一个详细的 Vue 3
组件示例和讲解:

假设我们要开发一个简单的待办事项列表组件,包括添加待办事项、显示待办事项列表以及删除待办事项的功能。

在 TodoList.vue 文件中:

<template><div><input type="text" v-model="newTodo" placeholder="输入待办事项"><button @click="addTodo">添加</button><ul><li v-for="(todo, index) in todos" :key="index">{{ todo }}<button @click="deleteTodo(index)">删除</button></li></ul></div>
</template><script>
import { ref } from 'vue';export default {name: 'TodoList',setup() {// 使用 ref 创建响应式数据const newTodo = ref('');const todos = ref([]);// 添加待办事项const addTodo = () => {if (newTodo.value) {todos.value.push(newTodo.value);newTodo.value = '';}};// 删除待办事项const deleteTodo = (index) => {todos.value.splice(index, 1);};// 暴露数据和方法给模板使用return {newTodo,todos,addTodo,deleteTodo,};},
};
</script>

在上面的示例中,我们使用了 Vue 3 的 Composition API 来编写组件。主要包括以下几个部分:

  1. 使用 ref 函数创建响应式数据:我们使用 ref 函数创建了 newTodotodos两个响应式数据,分别用于存储用户输入的待办事项和待办事项列表。
  2. 定义添加待办事项的方法:我们定义了 addTodo 方法,该方法会在用户点击“添加”按钮时被触发。它会将 newTodo 的值添加到todos 列表中,并清空输入框的值。
  3. 定义删除待办事项的方法:我们定义了 deleteTodo 方法,该方法会在用户点击“删除”按钮时被触发。它会根据传入的索引从 todos列表中移除对应的待办事项。
  4. 在模板中使用响应式数据和方法:在模板中,我们使用了 v-model 来实现输入框与 newTodo的双向绑定,使用户输入的值能够同步更新。使用 v-for 循环遍历 todos 列表,并显示每个待办事项及其对应的删除按钮。

这样,我们就完成了一个简单的待办事项列表组件的开发。在其他地方使用该组件时,只需要引入并放置在相应的位置即可。组件内部的数据和方法已经封装好,可以在不同的上下文中使用和传递。


http://www.ppmy.cn/news/704091.html

相关文章

python学习笔记(面向对象)

python学习笔记&#xff08;面向对象&#xff09; 一、什么是类 文章目录 python学习笔记&#xff08;面向对象&#xff09;一、什么是类二、创建一个简单的类三、类中的方法&#xff1a;动作方法的种类&#xff1a;1、普通方法2、类方法和静态方法3、魔术方法 四、私有化五、…

【python 3】 面向对象

文章目录 一、面向对象之属性二、面向对象之方法1&#xff09;普通方法2&#xff09;类方法3&#xff09;静态方法4&#xff09;魔术方法 三、私有化四、装饰器五、继承六、多态七、单例模式 python 是面向对象的编程语言&#xff0c;面向对象编程&#xff08;Object-oriented …

游戏策划小白笔记——Common Sense(一)

地摊经济都到来了&#xff0c;想想自己曾经在游戏里摆过的地摊儿&#xff0c;如今摊位都被兄弟萌蹲完了吧。我也没想到有朝一日我会在满筐热情的驱赶下&#xff0c;决心再次潜入游戏世界&#xff0c;不过这次是在玩家的身份上&#xff0c;悄悄夹带了些许不为人知的目的。 奋不…

python基础(八) P155-P166

学习视频地址&#xff1a;https://www.bilibili.com/video/BV15J411T7WQ?p155 P155 私有化 封装&#xff1a;1.私有化属性 2.定义公有set和get方法 #__属性 : 就是将属性私有化&#xff0c;访问范围仅仅限于类中 好处&#xff1a; 1.隐藏属性不被外界随意修改 2.也可以修改…

前端学习——html、css

一、HTML 1.简单的HTML结构介绍 <!DOCTYPE html>//说明用HTML5来显示网页 <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vie…

py 继承

# 继承 is a , has a方法1&#xff0c;求车名在那条公路上以多少时速行驶了多长get_time(self.road) 2,初始化车属性信息__init__ 方法 3&#xff0c;打印对象显示车的属性信息import randomclass Road:def __init__(self,name,len):self.name nameself.len lenclass Car:de…

python 类关联关系

类的关联关系 一个类调用另一个类的属性和函数方法 “”" 公路(Road): 属性&#xff1a;公路名称 &#xff0c; 公路长度 车(Car): 属性: 车名&#xff0c;时速 方法: 1.求车名在那条公路上以多少的时速行驶了多久 get_time(self,road) 2.初始化车属性信息__init__ 方法 …

python对象

类和对象 类属性和对象属性 当实例化对象的时候&#xff0c;加了新的属性并赋值&#xff0c;会优先使用对象属性&#xff08;即使类中也有同样的属性&#xff09;&#xff0c;当对象属性没做改变时&#xff0c;使用类属性。 类中self的作用 类中的self其实就是指类本身。 …