详解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 22 Javascript
基于javascript的JSON格式页面展示美化方法
Jul 02 Javascript
jQuery实现多按钮单击变色
Nov 27 Javascript
使用jQuery实现返回顶部
Jan 26 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
Feb 26 Javascript
原生js实现日期计算器功能
Feb 17 Javascript
完美实现js选项卡切换效果(二)
Mar 08 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
Dec 26 Javascript
微信小程序中进行地图导航功能的实现方法
Jun 29 Javascript
ionic使用angularjs表单验证(模板验证)
Dec 12 Javascript
解决微信小程序中的滚动穿透问题
Sep 16 Javascript
通过微信公众平台获取公众号文章的方法示例
Dec 25 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批量上传图片的具体实现方法介绍.
2014/02/26 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
JS+CSS实现过渡特效
2021/01/02 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
意大利男装网店:Vrients
2019/05/02 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
Android面试宝典
2013/08/06 面试题
十八大闭幕感言
2014/01/22 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
带薪年假请假条
2014/02/04 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
荆州古城导游词
2015/02/06 职场文书