Vuex实战项目—ToDoList代码及流程详解

一、安装依赖

初始化样式,安装axios、命令行管理员(终端)安装ant-design-vue@1.3.10,更改App.vue和main.js;

npm i ant-design-vue@1.3.10
vue ui

二、全部代码

main.js:
import Vue from 'vue'
import App from './App.vue'
//1、导入ant-design-vue组件库
import Antd from 'ant-design-vue'
//2、导入组件库的样式表
import 'ant-design-vue/dist/antd.css'

Vue.config.productionTip = false
//3、安装组件库
Vue.use(Antd)

import store from './store.js'
new Vue({
   
 store,
 render: h => h(App)
}).$mount('#app')
store.js:
import Vue from 'vue'
import Vuex from 'vuex'
//导入axios,axios是异步操作,因此在actions中使用
import axios from 'axios'

Vue.use(Vuex)

export default new Vuex.Store({
   
  state: {
   
    //所有的任务数据列表
    list: [],
    //文本框的内容
    inputValue: 'aaa',
    nextId: 5,
    viewKey: 'all'
  },
  mutations: {
   
    initList(state,list) {
   
        state.list = list;
    },
    //更改inputValue的值
    setInputValue(state,val) {
   
        state.inputValue = val;
    },
    addItem(state) {
   
        const obj ={
   
            id: state.nextId,
            info: state.inputValue.trim(),
            done: false
        }
        state.list.push(obj);
        state.nextId++;  //序号自加1
        state.inputValue = '';  //添加后输入框重新为空
    },
    removeItem(state,id) {
   
      //1、根据id查找对应项的索引
      const i = state.list.findIndex(x => x.id ===
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来给你写一个todolist。 首先,我们需要创建一个空的Vue 3项目,可以使用Vue CLI来创建。 在终端中输入以下命令: ``` vue create todolist ``` 接着,我们需要安装一些必要的依赖,包括`vuex`和`axios`。 在终端中输入以下命令: ``` cd todolist npm install vuex axios ``` 接下来,我们需要在src目录下创建一个名为`components`的文件夹,并在其中创建一个名为`TodoList.vue`的文件。 在`TodoList.vue`中,我们可以写下以下代码: ```html <template> <div> <h1>Todolist</h1> <input type="text" v-model="newTodo" @keydown.enter="addTodo" placeholder="Add new todo"> <ul> <li v-for="(todo, index) in todos" :key="todo.id"> <input type="checkbox" v-model="todo.completed" /> <span :class="{ completed: todo.completed }">{{ todo.title }}</span> <button @click="deleteTodo(index)">Delete</button> </li> </ul> </div> </template> <script> import { reactive } from 'vue'; import axios from 'axios'; export default { name: 'TodoList', setup() { const state = reactive({ todos: [], newTodo: '', }); const fetchData = async () => { const response = await axios.get('https://jsonplaceholder.typicode.com/todos'); state.todos = response.data; }; const addTodo = () => { if (state.newTodo.length > 0) { const newTodo = { id: state.todos.length + 1, title: state.newTodo, completed: false, }; state.todos.push(newTodo); state.newTodo = ''; } }; const deleteTodo = (index) => { state.todos.splice(index, 1); }; return { state, fetchData, addTodo, deleteTodo, }; }, mounted() { this.fetchData(); }, }; </script> <style> .completed { text-decoration: line-through; } </style> ``` 在这个代码中,我们使用了Vue 3的Composition API来实现了`reactive`函数,它允许我们定义一个响应式的状态对象。我们还使用了`axios`来从外部API获取到了一些假数据,并将其渲染到了页面中。 现在我们只需要在`App.vue`中引入`TodoList.vue`组件即可: ```html <template> <div id="app"> <TodoList /> </div> </template> <script> import TodoList from './components/TodoList.vue'; export default { name: 'App', components: { TodoList, }, }; </script> ``` 现在我们已经完成了一个简单的todolist应用程序。当你运行`npm run serve`时,你应该可以看到一个具有添加和删除功能的todolist

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值