详解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 Event学习第二章 Event浏览器兼容性
Feb 07 Javascript
jquery 定位input元素的几种方法小结
Jul 28 Javascript
JS代码防止SQL注入的方法(超简单)
Apr 12 Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 Javascript
如何实现json数据可视化详解
Nov 24 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
Vue slot用法(小结)
Oct 22 Javascript
关于js陀螺仪的理解分析
Apr 11 Javascript
如何区分vue中的v-show 与 v-if
Sep 08 Javascript
Vue中正确使用Element-UI组件的方法实例
Oct 13 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
Nov 09 Javascript
JS代码编译器Monaco使用方法
Jun 11 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源代码
2009/08/21 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
简单实现php上传文件功能
2017/09/21 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
Javascript学习笔记2 函数
2010/01/11 Javascript
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
js操作iframe父子窗体示例
2014/05/22 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
Cython 三分钟入门教程
2009/09/17 Python
Python中的jquery PyQuery库使用小结
2014/05/13 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
python 模拟登陆163邮箱
2020/12/15 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
农民工创业典型事迹
2014/01/25 职场文书
车间主任岗位职责
2014/03/16 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书