当前位置: 首页 > news >正文

TodoList 案例(Vue3): 使用Composition API

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

以下是一个简单的TodoList案例,展示了如何在Vue3中使用Composition API来实现一个基本的待办事项列表。

项目结构

src/
|-- components/
|   |-- TodoList.vue
|   |-- TodoItem.vue
|-- App.vue
|-- main.js
|-- store.js (使用Vuex)

TodoList.vue

<template>
<div>
<h1>Todo List</h1>
<input v-model="newTodo" @keyup.enter="addTodo" placeholder="Add a new todo">
<ul>
<TodoItem
v-for="(todo, index) in todos"
:key="index"
:todo="todo"
@delete="deleteTodo(index)"
/>
</ul>
</div>
</template><script>
import { ref } from 'vue';
import TodoItem from './TodoItem.vue';export default {
components: {
TodoItem
},
setup() {
const newTodo = ref('');
const todos = ref([]);const addTodo = () => {
if (newTodo.value.trim()) {
todos.value.push({ text: newTodo.value.trim(), done: false });
newTodo.value = '';
}
};const deleteTodo = (index) => {
todos.value.splice(index, 1);
};return {
newTodo,
todos,
addTodo,
deleteTodo
};
}
};
</script>

TodoItem.vue

<template>
<li>
<span :class="{ done: todo.done }">{{ todo.text }}</span>
<button @click="$emit('delete')">Delete</button>
</li>
</template><script>
export default {
props: {
todo: Object
}
};
</script><style>
.done {
text-decoration: line-through;
}
</style>

App.vue

<template>
<TodoList />
</template><script>
import TodoList from './components/TodoList.vue';export default {
components: {
TodoList
}
};
</script>

main.js

import { createApp } from 'vue';
import App from './App.vue';
import store from './store'; // 如果使用Vuexconst app = createApp(App);
app.use(store); // 如果使用Vuex
app.mount('#app');

store.js (可选)

如果你想使用Vuex来管理状态,可以创建一个store.js文件:

import { createStore } from 'vuex';export default createStore({
state: {
todos: []
},
mutations: {
addTodo(state, todo) {
state.todos.push(todo);
},
deleteTodo(state, index) {
state.todos.splice(index, 1);
}
},
actions: {
// 可以在这里添加异步操作
}
});

然后在 main.js 中引入并使用这个store。

总结

以上代码展示了一个简单的TodoList应用,使用了Vue3的Composition API。在这个案例中,我们创建了两个组件:TodoListTodoItemTodoList 组件负责管理待办事项的添加和删除,而 TodoItem 组件负责显示单个待办事项。这个例子没有使用Vuex,但是你可以很容易地将其集成到Vuex store中,以便更好地管理状态。

相关文章:

  • 嵌入式开发之嵌入式系统架构如何搭建?
  • 【StarRocks系列】建表优化
  • AI与SEO关键词协同进化
  • HarmonyOS 5 NPU支持哪些AI框架?
  • 系统化的Node.js服务器搭建攻略
  • 如何用 eBPF 实现 Kubernetes 网络可观测性?实战指南
  • 读者写者问题与读写锁自旋锁
  • 文献调研[eeg溯源的深度学习方法](过程记录)
  • AI大模型学习之基础数学:微积分在AI大模型中的核心-梯度与优化(梯度下降)详解
  • 《Effective Python》第九章 并发与并行——总结(基于物流订单处理系统)
  • Flink流水线+Gravitino+Paimon集成
  • Go实战项目OneX介绍(5/12):通过测试,了解 OneX 项目的使用方式和功能
  • 微前端MFE:(React 与 Angular)框架之间的通信方式
  • c++中 Lambda表达式
  • 57-Oracle SQL Profile(23ai)实操
  • 项目练习:Jaspersoft Studio制作PDF报表时,detail和column footer之间存在很大的空白区
  • RocketMQ--为什么性能不如Kafka?
  • 使用 Telegraf 向 TDengine 写入数据
  • 循环队列的顺序实现和链式实现 #数据结构(C,C++)
  • 大模型之微调篇——指令微调数据集准备
  • 销售网站怎么做/软文标题和内容
  • 幼儿园网站及办公平台建设/推广什么app佣金高
  • 装潢公司网站设计与制作/交换友情链接推广法
  • 超炫的网站模板/十五种常见的销售策略
  • 网站建设 东营远见网络公司/每日新闻简报
  • 网站测评必须做/宁波网站制作优化服务公司