Vue


vuex

<p>使用state的值:</p> <pre><code class="language-javascript">import {   createStore } from &amp;quot;vuex&amp;quot;; export default createStore({   state: {     todoList: [       {         id: 1,         done: true       },       {         id: 2,         done: false       },       {         id: 3,         done: true       },     ]   },   getters: {},   mutations: {},   actions: {},   modules: {}, });</code></pre> <pre><code class="language-javascript">&amp;lt;script setup&amp;gt; import { useStore } from &amp;quot;vuex&amp;quot;; const store = useStore(); console.log(store.state.todoList[0].id); // 1 &amp;lt;/script&amp;gt;</code></pre> <p>使用getters的值:</p> <pre><code class="language-javascript">import {   createStore } from &amp;quot;vuex&amp;quot;; export default createStore({   state: {     todoList: [       {         id: 1,         done: true       },       {         id: 2,         done: false       },       {         id: 3,         done: true       },     ]   },   getters: {     todoListDone(state) {       return state.todoList.filter((item) =&amp;gt; item.done)     }   },   mutations: {},   actions: {},   modules: {}, });</code></pre> <pre><code class="language-javascript">&amp;lt;script setup&amp;gt; import { useStore } from &amp;quot;vuex&amp;quot;; const store = useStore(); console.log(store.getters.todoListDone); &amp;lt;/script&amp;gt;</code></pre> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=47d3be93c50a040167144d53eea00bd0" alt="" /> 使用getters传参:</p> <pre><code class="language-javascript">import {   createStore } from &amp;quot;vuex&amp;quot;; export default createStore({   state: {     todoList: [{         id: 1,         done: true       },       {         id: 2,         done: false       },       {         id: 3,         done: true       },     ]   },   getters: {     getResultbyId: (state) =&amp;gt; (id) =&amp;gt; {       return state.todoList.find(item =&amp;gt; item.id === id)     }   },   mutations: {},   actions: {},   modules: {}, });</code></pre> <pre><code class="language-javascript">&amp;lt;script setup&amp;gt; import { useStore } from &amp;quot;vuex&amp;quot;; const store = useStore(); console.log(store.getters.getResultbyId(2)); // {id: 2, done: false} &amp;lt;/script&amp;gt;</code></pre> <p>mutation:(唯一能更改state的人)</p> <pre><code class="language-javascript">import {   createStore } from &amp;quot;vuex&amp;quot;; export default createStore({   state: {     age: &amp;quot;&amp;quot;   },   getters: {},   mutations: {     setAge(state, newage) {       state.age = newage     }   },   actions: {},   modules: {}, });</code></pre> <pre><code class="language-javascript">&amp;lt;script setup&amp;gt; import { useStore } from &amp;quot;vuex&amp;quot;; const store = useStore(); let age = &amp;quot;21&amp;quot;; store.commit(&amp;quot;setAge&amp;quot;, age); // 别的组件都可以读到state中的age是21 console.log(store.state.age); // 21 &amp;lt;/script&amp;gt;</code></pre> <p>mutation:commit 的第二个参数是对象</p> <pre><code class="language-javascript">&amp;lt;script setup&amp;gt; import { useStore } from &amp;quot;vuex&amp;quot;; const store = useStore(); store.commit(&amp;quot;setInfo&amp;quot;, {   name: &amp;quot;Andy&amp;quot;,   age: 21, }); console.log(store.state.person); // {name: &amp;quot;Andy&amp;quot;, age: 21} &amp;lt;/script&amp;gt;</code></pre> <pre><code class="language-javascript">import {   createStore } from &amp;quot;vuex&amp;quot;; export default createStore({   state: {     person: {       name: &amp;quot;&amp;quot;,       age: &amp;quot;&amp;quot;,     }   },   getters: {},   mutations: {     setInfo(state, payload) {       state.person.name = payload.name       state.person.age = payload.age     }   },   actions: {},   modules: {}, });</code></pre> <p>mutation:直接 commit一个对象,方法名的字段固定是 type</p> <pre><code class="language-javascript">&amp;lt;script setup&amp;gt; import { useStore } from &amp;quot;vuex&amp;quot;; const store = useStore(); store.commit({   type: &amp;quot;setInfo&amp;quot;,   name: &amp;quot;Andy&amp;quot;,   age: 21, }); console.log(store.state.person); // {name: &amp;quot;Andy&amp;quot;, age: 21} &amp;lt;/script&amp;gt;</code></pre>

页面列表

ITEM_HTML