详解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 相关文章推荐
学习JS面向对象成果 借国庆发布个最新作品与大家交流
Oct 03 Javascript
jquery 跨域访问问题解决方法(笔记)
Jun 08 Javascript
使用jquery自定义鼠标样式满足个性需求
Nov 05 Javascript
禁止页面刷新让F5快捷键及右键都无效
Jan 22 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
jQuery中:first-child选择器用法实例
Dec 31 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
Aug 25 Javascript
用户代理字符串userAgent可实现的四个识别
Sep 20 Javascript
移动端横屏的JS代码(beta)
May 16 Javascript
原生javascript实现的全屏滚动功能示例
Sep 19 Javascript
详解性能更优越的小程序图片懒加载方式
Jul 18 Javascript
vue拖拽组件使用方法详解
Dec 01 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配置文件中最常用四个ini函数
2007/03/19 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
php判断正常访问和外部访问的示例
2014/02/10 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
js资料toString 方法
2007/03/13 Javascript
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
jquery 读取页面load get post ajax 四种方式代码写法
2011/04/02 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
在Python中编写数据库模块的教程
2015/04/29 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
大一期末自我鉴定
2013/12/13 职场文书
教师队伍管理制度
2014/01/14 职场文书
小学运动会表扬稿
2014/01/19 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
送餐员岗位职责范本
2014/02/21 职场文书
民主评议党员工作总结
2014/10/20 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle