todos案例练习

todos案例

1 提供的数据和 HTML结构

  • 引入todos的CSS样式 (HTML和 CSS 已经写好 我们需要改成Vue动态渲染的)

2 把数据渲染到页面上

  • 根据completeed 的状态动态给li 绑定类名
    • 未完成状态:不需要样式 完成状态: 类名为 completed 编辑状态:类名为 editing

    • 如果completed 为 true 则给当前li 添加 completed
      ∗ \color{red}{*} input type=“checkbox"中绑定v-model时=的参数为唯一(没有再绑定其他input checkbox)时,绑定input的checked属性返回布尔值,继而通过这个特性将其与v-bind:class=”{}"使用同一个参数且实现双向绑定

      点击复选框会切换双向绑定的值,该布尔值会影响所在li的class显示与否在这里插入图片描述

3 把类名是 new-todo 按回车键的时候 把输入框中的数据展示到页面上

  • 1.获取文本框中用户输入的数据
  • 2.判断数据是否非空 如果是空的,则什么都不做 如果不是空的,则添加到数组中
  • 3.添加到数组中 4. 清空文本框

4. 实现全选功能

  • 4.1 当点击三角即类名为 toggle-all 的复选框的时候
    • 如果当前三角高亮 即 复选框为选中状态 让当前所有的li 为 完成状态
      • 通过双向绑定获取当前复选框的选中状态
    • 否则为未完成状态
  • 4.2 当点击单个li 里面的复选框的时候 如果当前复选框选中 则当前的状态为完成状态
    • 通过双向绑定获取当前复选框选中状态 通过选中状态动态改变 completed 的值
  • 4.3 如果当前所有的li 都处于完成状态 即 复选框都选中 则上面的 toggle-all 复选框选中 有一个没有选中则当前toggle-all 复选框 处于未选中状态
    ∗ \color{red}{*} computed计算属性依赖的数据改变触发默认的get,计算属性本身改变时触发可选的get,函数中的参数val为计算属性的新值
    遍历数组,中有一个为false时返回fasle,全为true返回true

在这里插入图片描述
利用
利用 e v e r y ( ) \color{red}{every( ) } every()简化代码

5 实现删除功能

  • 给类名是 destroy 的按钮添加点击事件
  • 点击当前按钮 删除当前按钮所在的 li

6 实现编辑功能

  • 6.1 双击标题的时候 当前li 的类名添加 editing

    • 6.1.1 给当前标题添加双击事件
    • 6.1.2 给当前li 添加editing 添加editing后 当前隐藏的输入框会显示出来
  • 6.2 输入框的默认值为当前标题

  • 6.3 当用户没有编辑 的时候 按esc退出的时候 数据不发生变化

  • 6.4 当用户输入内容按回车键的时候 把标题更新

  • 6.5当用户失去焦点的 时候 把输入框中的标题更新

    ∗ \color{red}{*} 实现点击元素中子元素来控制该元素的核心是绑定点击事件后将相应数据赋值为index,判断得到对应索引号的元素在这里插入图片描述
    绑 定 事 件 时 遇 到 两 个 问 题 \color{red}{绑定事件时遇到两个问题}
    1.@keyon.esc在声明的函数中写逻辑 在input按esc键会失去焦点而不会触发事件 但是如图编写却可以实现 网上查找说是任务占位 具体解决方法还没找到
    2.change事件是在input中按enter键或失去焦点时触发,而change不能取代这两个事件,因为change触发还需要input里面的值发生变化

7 Clear completed

  • 点击Clear completed 的时候删除所有的 已完成项

8 number item left

  • 通过计算属性检测当前complete未完成的状态
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 Todos案例是一个使用Vue3编写的TodoList应用程序。该应用程序允许用户添加、编辑和删除待办事项,并可标记已完成的待办事项。 在该案例中,我们首先使用Vue3的Composition API来定义相关的响应式数据。我们需要一个代表待办事项列表的数组todos,以及一个用于输入新待办事项内容的变量newTodo。 然后,我们定义了几个处理用户操作的函数。addTodo函数用于将新待办事项添加到todos数组中,将newTodo重置为空字符串。editTodo函数用于编辑待办事项的内容,它接收一个索引作为参数,并将todos数组中对应索引的待办事项用newTodo的值替换。deleteTodo函数用于删除待办事项,它接收一个索引作为参数,并使用splice方法从todos数组中删除对应索引的待办事项。 在模板中,我们使用v-for指令遍历todos数组,使用v-model指令将newTodo与输入框进行双向绑定,使用@click指令监听按钮点击事件,并调用相应的函数。 最后,我们通过创建一个Vue实例来挂载这个TodoList组件,并将其渲染到HTML页面中。 Vue3 Todos案例通过使用Vue3的新特性Composition API,使得组件的逻辑更加清晰和可维护。它展示了Vue3在构建响应式应用程序方面的优势,并且在性能方面也有所提升。同时,它还能够帮助开发者更好地理解和运用Vue3的Composition API,为开发更复杂的应用打下基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值