前端歌谣-第十伍课-Vuex讲解
前言
大家好 我是歌谣 今天给大家带来vuex的讲解
安装vite
yarn create vite -D
安装成功之后
yarn add vuex
依赖
{ "name": "vite-vue-project", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite --port 3002", "build": "vite build", "preview": "vite preview" }, "dependencies": { "vue": "^3.3.4", "vuex": "^4.1.0" }, "devDependencies": { "@vitejs/plugin-vue": "^4.2.3", "vite": "^4.4.5" } }
store中的index.js
import {createStore} from 'vuex' const defaultValue={ count:1, todos:[{ id:1, text:"geyao", done:false }] } export default createStore({ state(){ return defaultValue }, mutations:{ increment(state,payload={amount:1}){ return (state.count=state.count+payload.amount) } }, actions:{ increment({commit},payload){ commit('increment',payload) } }, getters:{ double:(state)=>state.count*2, getTodoById:state=>id=>state.todos.find((todo)=>todo.id===id) } })
Helloword.js
<script setup> import { useStore } from "vuex" import { computed } from "vue"; const store=useStore() const {state}=store const countDouble=computed(()=> store.getters.double ) </script> <template> <div class="card"> <p>{{ countDouble }}</p> <button type="button" @click="store.commit('increment')">count is {{ state.count }}</button> <button type="button" @click="store.dispatch('increment',{amount:20})">actions is {{ state.count }}</button> <button type="button" @click="store.commit('increment')">count is {{ countDouble }}</button> <p> Edit <code>componnets/helloworld</code> </p> </div> </template> <style scoped></style>
运行结果
标签:
前端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通