详解vuex的简单todolist例子
2019-07-14 08:31
1466 查看
一个简单的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会报错,请大神帮我解答下。
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- 【Boost】boost库中thread多线程详解7——wait与timed_wait简单例子
- vue简单实例(todolist)
- 【Boost】boost库asio详解8——TCP的简单例子1
- oracle理论学习详解及各种简单操作例子(菜鸟必备)
- boost库asio详解8——几个TCP的简单例子
- vue-loader的简单例子
- 【Boost】boost库asio详解9——TCP的简单例子2
- vue实现简单表格组件实例详解
- vue.js简单配置axios的方法详解
- Windows 钩子详解以及简单例子(VC6)
- vue简单todolist制作
- Vue.js实现简单ToDoList 前期准备(一)
- vue-router2.0的最简单的例子
- 基于vue-cli、elementUI的Vue超简单入门小例子
- 一个简单的vue小例子之倒计时
- 【词汇详解】一个简单有趣的例子理解--IOC(控制反转)
- android接口回调详解、简单例子+复杂例子
- 详解基于django实现的webssh简单例子
- 利用vscode编写vue的简单配置详解
- java爬取网页内容 简单例子(2)——附jsoup的select用法详解