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

利用 vuex写一个todoList

1 store 仓库下有index,js文件

 state: { // 存放数据
    todoList: JSON.parse(sessionStorage.getItem('todoList')) || []
  },
  mutations: { // 同步方法
    btn(state, val) {
      state.todoList.push({
        id:Date.now(),
        name: val
      })
    sessionStorage.setItem('todoList', JSON.stringify(state.todoList))
    },
    remove(state, index) {
      console.log(index) // 接收过来的id参数
      // state.todoList.splice(index, 1)
      // sessionStorage.setItem('todoList', JSON.stringify(state.todoList))
      state.todoList.some((item , i) => { // some 方法一个为true即为true
        console.log(item.id)
        if (item.id == index) {  //判断有一个符合some 方法的id
          console.log('../', item.id)
          state.todoList.splice(i, 1)
          return sessionStorage.setItem('todoList',JSON.stringify(state.todoList))
        }
      })
    }
  },

vue文件里的内容
在元素上写一个mode模板

 <div>todoList</div>
    <input type="text" v-model="str">
   	<button @click='add' >   添加 </button>
      <ul>
      <!-- 根据下标删除 -->
      <!-- <li v-for="(item, index) in todoList" :key="item.id">{{item.name}}
        <button @click='remove(index)'>删除</button>
      </li> -->
      <!-- 根据id删除 -->
      <li v-for="item in todoList" :key="item.id">{{item.name}}
        <button @click='remove(item.id)'>删除</button>
      </li>
    </ul>

在这里插入图片描述
script里的内容

<script>
export default {
  data() {
    return {
      str: '',
      todoList: this.$store.state.todoList
    }
  },
  computed: {
  },
  methods: {
    add() {
      if(this.str === '') return;
      this.$store.commit('btn', this.str);
      this.str = ''
    },
    // 根据下标删除
    // remove(index) {
    //   console.log(index, 'index')
    //   this.$store.commit('remove', index)
    // }
    // 根据id删除
    remove(id) {
      console.log(id, 'id')
      this.$store.commit('remove', id)
    }
  },
}
</script>

在这里插入图片描述

相关文章:

  • Java日志组件2---Log4j(org.apache.log4j.Logger)
  • react项目搭建
  • mybatis3.0 配置等值连接两种方式:resultMap和resulttype
  • react官方脚手架安装
  • 怎么用ChemDraw 15.1 Pro绘制彩色结构
  • react实现打印功能
  • 关于CreateProcess函数一些经验
  • 前端解决跨域 cors
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 斐波那契数列 的计算规则
  • react 中 props 和 state的相同与不同
  • 理解java Web项目中的路径问题
  • react 中千万不要在render里调用this.setState
  • 系统界面图片
  • HDU 3068 回文串-Manacher
  • 【笔记】你不知道的JS读书笔记——Promise
  • Debian下无root权限使用Python访问Oracle
  • Docker入门(二) - Dockerfile
  • exif信息对照
  • express + mock 让前后台并行开发
  • Git同步原始仓库到Fork仓库中
  • HTTP 简介
  • Invalidate和postInvalidate的区别
  • LeetCode算法系列_0891_子序列宽度之和
  • Python语法速览与机器学习开发环境搭建
  • Terraform入门 - 3. 变更基础设施
  • 程序员该如何有效的找工作?
  • 读懂package.json -- 依赖管理
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 如何实现 font-size 的响应式
  • 算法---两个栈实现一个队列
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 我的面试准备过程--容器(更新中)
  • 我有几个粽子,和一个故事
  • 新版博客前端前瞻
  • 学习HTTP相关知识笔记
  • 应用生命周期终极 DevOps 工具包
  • - 转 Ext2.0 form使用实例
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • #pragma data_seg 共享数据区(转)
  • $ git push -u origin master 推送到远程库出错
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (四)图像的%2线性拉伸
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)linux下的时间函数使用
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • . Flume面试题
  • ..回顾17,展望18