详解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 相关文章推荐
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
May 18 Javascript
关于extjs4如何获取grid修改后的数据的问题
Aug 07 Javascript
JQuery中form验证出错信息的查看方法
Oct 08 Javascript
如何实现textarea里的不同文本显示不同颜色
Jan 20 Javascript
jquery 隐藏与显示tr标签示例代码
Jun 06 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
详解ES6 Fetch API HTTP请求实用指南
Nov 14 Javascript
layui自定义插件citySelect实现省市区三级联动选择
Jul 26 Javascript
对Layer弹窗使用及返回数据接收的实例详解
Sep 26 Javascript
js实现数字滚动特效
Dec 16 Javascript
vue实现简单图片上传
Jun 30 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
调频问题解答
2021/03/01 无线电
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
详解Angular5 路由传参的3种方法
2018/04/28 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
如何写出好的Java代码
2014/04/25 面试题
医院护士专业个人的求职信
2013/12/09 职场文书
个人自我剖析材料
2014/02/07 职场文书
营销学习心得体会
2014/09/12 职场文书
项目安全员岗位职责
2015/02/15 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
理想国读书笔记
2015/06/25 职场文书
浅谈Python中对象是如何被调用的
2022/04/06 Python