今天通过一个todolist的案例,兼顾了很多学过的知识点

本文通过一个todolist案例详细介绍了前端开发中的组件通信和本地存储技术。涉及props、自定义事件、全局事件总线、webStorage以及消息订阅与发布的使用。同时讲解了如何在Vue.js中正确处理数据交互和DOM更新,强调了事件绑定的逻辑思考。
摘要由CSDN通过智能技术生成
todolist案例

写案例的流程:

  1. 拆分组件,想清楚分多少部分(按照功能点拆分),每个部分控制的功能,实现静态组件

  2. 展示动态效果,考虑存放位置,使用情况:

    1. 一个组件用,放在自身
    2. 多个组件在用,放在他们共同的父组件身上(状态提升)
  3. 进行交互

    1. 点击勾选和取消勾选,两种实现方式:

      • 给点击事件绑定处理函数并传id。@click=“handeleCheck(todo.id)”

      • 也可以绑定change事件。@change=“handeleCheck(todo.id)”

        <input type="checkbox" v-model="todo.done" /> 这个方法虽然能改,但是违背了不改props接收数据的原则,只是因为这在对象里,监视不到

    2. 获取已完成数量+全选,同样两种实现方式:读取状态都是一样的

      • 给input绑定事件处理函数,把每个勾选状态变成true或false
      • 直接用完整版的计算属性。使用v-model,不需要自己再定义函数。
    3. 清除已完成:

      采用父向子传值的方式,父组件通过过滤获得done属性不为true的,子组件直接调用

  4. 添加本地存储:把todolist的事件添加到本地存储上,刷新页面列表也不会重新初始化:

    添加监视器,每当todos的项变化了就把新的添加到localstorage里

    watch: {

    todos: {

    deep: true,

    handler(*value*) {

    localStorage.setItem('todos', JSON.stringify(*value*))

    }

    }

    }

props 组件通信:
  1. 父传子:在组件里面通过标签属性v-bind:‘变量’,子组件需要props接收数据,
  2. 子传父:父先给子传一个自定义函数,子先在props里面接收,再this调用函数就可以传值了
本地存储 webStorage

存储大小一般为5M左右

localstorage 手动清除才会消失(API清除或清缓存)
  1. 添加数据:localStorage.setItem(‘key’,‘value’)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值