[Vue3实操] 开发Todo List

本文通过Vue3的Composition API,详细介绍了如何开发一个Todo List应用。内容包括使用Vite构建项目,HTML和CSS的编写,组件的拆分以及逻辑的拆解。文章强调了Vue3最新语法的使用,并提供了项目的GitHub链接。
摘要由CSDN通过智能技术生成

前言

使用Vue3最新的Composition API,开发一个Todo List应用。

Todo List应用比较简单,不会使用其他复杂的Vue3组件,但这也使得当前应用与真实的应用脱钩,所以本文重点是体会Vue3的最新语法,下篇文章会阅读element-plus-admin开源项目的源码,从而掌握Vue3目前最近技术栈的使用方式。

所谓Todo List应用主要用于记录你需要完成的工作,完成后,将其打钩,最终效果如下:

1b5db7a58b9afd8147f501793abb65a7.png

写点HTML+CSS吧

先用yarn基于vite构建出vue-ts的项目目录,命令如下。

yarn create vite TodoList --template vue-ts
yarn && yarn dev

在开始编码前,最好弄一下原型稿,我个人为求方便,通常使用PPT来构建原型稿,专业的前端可能会使用专门的原型设计软件,与后端开发前写功能设计一个道理,前端开发前,弄好原型稿,从而从整体把握开发出网页的样式、配色以及可能需要需要的组件。

在弄原型稿时,要刻意关注页面由那几部分组成,一个复杂的业务,拆分到最后,很发现都是一个简单的HTML元素的组合使用,此外,原型稿对CSS编写也很有帮助,复杂的样式效果,拆分到最后也是一些简单的CSS属性。

60fe789181d000574ae5660e0ccba3e0.png首先,我们基于原型稿,通过HTML搭建类似的结构,直接全部写到App.vue的template中,代码如下:

<div class="main">
<div class="container">
    <h1>欢迎使用Todo List</h1>
    <div class="add-todo">
      <input type="text" name="todo" />
      <button>
        <!-- 按钮上的加号元素 -->
        <i class="add-icon"></i>
      </button>
    </div>

    <div class="filters">
      <span class="filter active">全部</span>
      <span class="filter">已完成</span>
      <span class="filter">未完成</span>
    </div>

    <div class="todo-list">
      <div class="todo-item">
        <!-- 使用label包裹input与span,后续用户无论点击input还是span,都会触发checkbox事件,从而实现勾选了input的效果 -->
        <label>
          <input type="checkbox" />
          写开发Todo List的文章
          <span class="check-button"></span>
        </label>
      </div>
      <div class="todo-item">
        <label>
          <input type="checkbox" />
          写开发Todo List的文章
          <span class="check-button"></span>
        </label>
      </div>
      <div class="todo-item">
        <label>
          <input type="checkbox" />
          写开发Todo List的文章
          <span class="check-button"></span>
        </label>
      </div>
    </div>
  </div>
</div>

运行项目,会得到如下效果d7b0c2a3e015964cbcd9ae009a5555e6.png这个阶段,不需要考虑HTML元素的样式,只需要将原型图里的组件一步步通过HTML搭建出来就好了,然后再写CSS去美化它。

CSS对很多后端同学来说,是难啃的骨头,其原因在于CSS属性多,而且就算记住了这些属性,也不知道如何配合使用,从而构建出美丽的样式。

我对CSS的思考是,要掌握CSS中比较核心的内容,比如CSS的布局与位置相关的内容,然后多看一些项目,去掌握感觉,当然最重要的是,你要先画原型图,在脑海中,比较清晰的知道自己需要的样子,然后再利用CSS属性一点点组合并配合Chrome的可见可得的特性,一点点组合出来,后续我也会写一篇文章记录我认为比较重要的CSS属性。

回到本文,Todo List的CSS样式如下:

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: Helvetica, "PingFang SC", "Microsoft Yahei", sans-serif;
}

/* 整个页面 */
.main {
  width: 100vw;
  min-height: 100vh;
  display: grid;
  align-items: center;
  justify-items: center;
  background: rgb(216, 243, 214);
}

.container {
  width: 60%;
  max-width: 400px;
  box-shadow: 0px 0px 24px rgba(26, 25, 25, 0.15);
  border-rad
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是使用Vue.js创建一个Todo List应用的步骤: 1. 创建Vue.js应用程序 你可以使用Vue CLI来创建一个新的Vue.js应用程序。打开终端并输入以下命令: ``` vue create todo-list ``` 这将创建一个名为“todo-list”的新Vue.js应用程序,并在其中包含所有必要的文件和依赖项。 2. 创建Todo组件 在src文件夹下创建一个名为“components”的新文件夹,并在其中创建一个名为“Todo.vue”的新文件。在这个文件中,你可以创建一个新的Vue组件,用于渲染Todo List应用程序的界面。 ```html <template> <div> <h1>Todo List</h1> <form v-on:submit.prevent="addTodo"> <input v-model="newTodo" placeholder="Add a new todo"> <button type="submit">Add</button> </form> <ul> <li v-for="(todo, index) in todos" v-bind:key="index"> <input type="checkbox" v-model="todo.completed"> <span v-bind:class="{ completed: todo.completed }">{{ todo.text }}</span> <button v-on:click="deleteTodo(index)">Delete</button> </li> </ul> </div> </template> <script> export default { data() { return { newTodo: '', todos: [] } }, methods: { addTodo() { if (this.newTodo.trim()) { this.todos.push({ text: this.newTodo, completed: false }) this.newTodo = '' } }, deleteTodo(index) { this.todos.splice(index, 1) } } } </script> <style> .completed { text-decoration: line-through; } </style> ``` 在这个组件中,我们定义了一个名为“newTodo”的data属性,用于存储新的Todo项的文本内容。我们还定义了一个名为“todos”的data属性,用于存储所有的Todo项。在template中,我们使用v-for指令来遍历todos数组,并为每个Todo项渲染一个li元素。我们还使用v-bind指令来将每个Todo项的completed属性绑定到一个复选框上,以便用户可以标记已完成的Todo项。最后,我们还定义了两个方法:addTodo方法用于添加新的Todo项,deleteTodo方法用于删除现有的Todo项。 3. 在应用程序中使用Todo组件 打开src文件夹下的“App.vue”文件,并将Todo组件导入到该文件中。然后在template中使用Todo组件。 ```html <template> <div id="app"> <Todo /> </div> </template> <script> import Todo from './components/Todo.vue' export default { name: 'app', components: { Todo } } </script> ``` 4. 运行应用程序 现在你可以运行应用程序并查看Todo List应用程序的界面。在终端中输入以下命令: ``` npm run serve ``` 这将启动开发服务器,并在浏览器中打开Todo List应用程序。你可以添加新的Todo项,并标记已完成的Todo项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒编程-二两

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值