详解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 特性检测并非浏览器检测
Jan 15 Javascript
js 返回时间戳所对应的具体时间
Jul 20 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
May 27 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
Aug 17 Javascript
简单纯js实现点击切换TAB标签实例
Aug 23 Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 Javascript
jquery form表单获取内容以及绑定数据
Feb 24 Javascript
BootStrap TreeView使用实例详解
Nov 01 Javascript
Vue导出json数据到Excel电子表格的示例
Dec 04 Javascript
JS实现监控微信小程序的原理
Jun 15 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
在HTML中使用JavaScript的两种方法
Dec 24 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 之入门篇
2006/12/04 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
JavaScript 加号(+)运算符号
2009/12/06 Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
2015/12/18 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
python 调试冷知识(小结)
2019/11/11 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
德国网上药房:Apotal
2017/04/04 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
国际残疾人日广播稿范文
2014/10/09 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL