详解vuex的简单todolist例子


Posted in Javascript onJuly 14, 2019

一个简单的vuex应用的小例子,一段自己的学习记录。

todolist就是一个简单的输入框,一个按钮,一个文本显示区域,可以逐条进行删除。

1.在用vue-cli生成好的HelloWorld.vue文件中直接写代码,先删除所有的自带代码

<template>
 <div class="hello">
  <input type="text">
  <button>增加事项</button>
  <ul>
   <li>item</li>
  </ul>
 </div>
</template>

要把`input`中的值在经过`button`点击后,显示在`li`中,`input`有`v-model`属性进行值的绑定,

让`li`的数据是一个数组。相当于在数组中push input的值。

2.在src目录下,新建一个store文件夹,创建一个index.js文件

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
 state: {
  inputVal: 'lily',
  list: ['1', '2', '3']
 },
 mutations: {
  changeListValue(state, inputVal) {
   state.list.push(inputVal)
   state.inputVal = ''
  },
  handleDel(state, idx) {
   state.list.splice(idx, 1)
  }
 },
 actions: {
  changeListValue: ({commit}, inputVal) => {
   return commit('changeListValue', inputVal)
  },
  handleDel: ({commit}, idx) => {
   return commit('handleDel', idx)
  }
 }
})
export default store

3.回到HelloWorld.vue

<template>
 <div class="hello">
  <input v-model="$store.state.inputVal" type="text">
  <button @click="changeListValue(inputVal)">增加事项</button>
  <ul v-for="(item, idx) in list">
   <li @click="handleDel(idx)">{{item}}</li>
  </ul>
 </div>
</template>

<script>
 import {mapState, mapActions} from 'vuex'
 export default {
  name: 'HelloWorld',
  computed: {
   ...mapState(['list', 'inputVal'])
  },
  methods: {
   ...mapActions(['changeListValue', 'handleDel'])
  }
 }
</script>

4.完成以后,有个困扰就是在input的v-model中写inputVal会报错,请大神帮我解答下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
鼠标事件延时切换插件
Mar 12 Javascript
jquery 笔记 事件
Nov 02 Javascript
JS实现很酷的EMAIL地址添加功能实例
Feb 28 Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 Javascript
JavaScript实现的SHA-1加密算法完整实例
Feb 02 Javascript
AngularJS Ajax详解及示例代码
Aug 17 Javascript
Bootstrap源码解读排版(1)
Dec 23 Javascript
详解Angular2中Input和Output用法及示例
May 21 Javascript
JS实现字符串中去除指定子字符串方法分析
May 17 Javascript
Vue实现搜索结果高亮显示关键字
May 28 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 Javascript
vue中的使用token的方法示例
Mar 10 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
Jul 13 #Javascript
微信小程序解析富文本过程详解
Jul 13 #Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
Jul 13 #Javascript
微信小程序Echarts覆盖正常组件问题解决
Jul 13 #Javascript
微信小程序图片左右摆动效果详解
Jul 13 #Javascript
vue iview多张图片大图预览、缩放翻转
Jul 13 #Javascript
vue实现图片预览组件封装与使用
Jul 13 #Javascript
You might like
深入php处理整数函数的详解
2013/06/09 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
判断页面是关闭还是刷新的js代码
2007/01/28 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
微信小程序 教程之wxapp 视图容器 view
2016/10/19 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
selenium自动化测试入门实战
2020/12/21 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
索尼巴西商店:Sony巴西
2019/06/21 全球购物
2014年中班元旦活动方案
2014/02/14 职场文书
商务英语专业求职信
2014/06/26 职场文书
公司离职证明标准格式
2014/11/18 职场文书