国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)

這篇具有很好參考價(jià)值的文章主要介紹了Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

知識(shí)回調(diào)(不懂就看這兒?。?/h2>
知識(shí)專欄 專欄鏈接
Vuex知識(shí)專欄 https://blog.csdn.net/xsl_hr/category_12158336.html?spm=1001.2014.3001.5482
Vuex從了解到實(shí)際運(yùn)用(一)徹底搞懂什么是Vuex https://blog.csdn.net/XSL_HR/article/details/130522551
【Vuex快速入門】vuex基礎(chǔ)知識(shí)與安裝配置 https://blog.csdn.net/XSL_HR/article/details/128515917

有關(guān)Vuex的相關(guān)知識(shí)可以前往Vuex知識(shí)專欄查看復(fù)習(xí)??!
vuex官方文檔傳送門

場景復(fù)現(xiàn)

上期文章介紹了vuex是什么和vuex的一些核心特點(diǎn),本期文章將以項(xiàng)目實(shí)戰(zhàn)為主,上手使用vuex。

項(xiàng)目實(shí)戰(zhàn)

vuex定義一個(gè)store實(shí)例

首先定義兩個(gè)組件,分別為One.vue和Second.vue,將兩個(gè)組件掛載到App.vue組件下。
Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)

在store中定義數(shù)據(jù)

接下來我們在store中定義數(shù)據(jù),使得兩個(gè)小組件都能訪問到store里的值。

import { createStore } from 'vuex'

export default createStore({
  state: {
    things:[
      {name: "張三", age:"18"},
      {name: "李四", age:"17"},
      {name: "王五", age:"20"},
    ]
  },
  mutations: {
  },
  actions: {
  },
  modules: {
  }
})

注意使用store實(shí)例時(shí),需要提前創(chuàng)建store實(shí)例。

  • 可以選擇在項(xiàng)目初始化時(shí)勾選vuex,這樣項(xiàng)目初始化成功后,store實(shí)例會(huì)被直接掛載到全局的main.ts或者main.js文件內(nèi)。
  • 有的初始化工具無法選擇vuex,則需要我們手動(dòng)導(dǎo)入和掛載。
    Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)

在組件中獲取值

分別在One.vue和Second.vue組件中,通過$store.state.things獲取到值(這里是因?yàn)樵趕tore中定義的數(shù)據(jù)名為things,需要根據(jù)變量名按要求獲取數(shù)據(jù))

<template>
  <div class="one">
    組件一
    <ul>
        <li v-for="item in $store.state.things" :key="item">
            <span>{{item.name}}</span>
            <span>{{item.age}}</span>
        </li>
    </ul>
  </div>
</template>

此時(shí)我們可以看看運(yùn)行出來的效果:??????
Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)

vuex的計(jì)算屬性

上面的操作主要是直接通過$store.state.things來獲取到值,但是我們往往需要對值進(jìn)行實(shí)時(shí)監(jiān)聽和更新,所以此時(shí)我們需要vuex的計(jì)算屬性——computed,但是在script中無法用以上的方法獲取到值,下面我們來看看解決辦法:??????

<template>
  <div class="one">
    組件一
    <ul>
        <li v-for="item in things" :key="item">
            <span>{{item.name}}</span>
            <span>{{item.age}}</span>
        </li>
    </ul>
  </div>
</template>

<script setup>
import { computed } from "vue"
import { useStore } from "vuex"
const store = useStore()
const things = computed(() => store.state.things)
</script>

計(jì)算屬性是非常常用的,可以將更多的邏輯層代碼放在script中進(jìn)行編寫,優(yōu)化代碼結(jié)構(gòu)。
不過,使用計(jì)算屬性之前,我們需要先引入vuex提供的useStore,利用它實(shí)例化一個(gè)store對象,然后對store對象進(jìn)行操作,訪問到我們需要的值。

此時(shí)我們可以看看運(yùn)行出來的效果:??????
Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)

通過getters獲取全局狀態(tài)

上面我們介紹了如何通過state來獲取全局狀態(tài),下面我們來嘗試用另一種方法——getter來獲取全局狀態(tài)。

首先我們需要在store中創(chuàng)建getter??????

import { createStore } from 'vuex'
export default createStore({
  state: {
    things:[
      {name: "張三", age:"18"},
      {name: "李四", age:"17"},
      {name: "王五", age:"20"},
    ]
  },
  getters: {
    getProducts: (state) => {
      return state.things
    }
  },
  mutations: {
  },
  actions: {
  },
  modules: {
  }
})

getters中我們定義了一個(gè)新的方法getProduct,此時(shí)在組件的代碼中,就可以在script中引入并調(diào)用這個(gè)方法。

$store.getters.getProducts

state和getters獲取全局狀態(tài)的區(qū)別

state和getters都能夠獲取到全局狀態(tài),那么二者有什么區(qū)別呢?

  • state只能夠獲取到全局狀態(tài),并不能對狀態(tài)數(shù)據(jù)進(jìn)行微調(diào)
  • getters既能獲取到全局狀態(tài),還能對數(shù)據(jù)進(jìn)行調(diào)整

下面我們在getters中新增一個(gè)resetProducts方法,在每個(gè)數(shù)據(jù)的前面貼上>>>

getters: {
    getProducts: (state) => {
      return state.things
    },
    resetProducts: (state) => {
      return state.things.map((things) => {
        return {
          name: `>>>${things.name}`
        }
      })
    }
  },

此時(shí)我們來看看調(diào)用此方法之后的效果:??????
Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)
很顯然,getters中調(diào)用的方法既能夠獲取到全局的狀態(tài)數(shù)據(jù),而且更靈活,能夠根據(jù)需求對全局的狀態(tài)進(jìn)行處理。一般將數(shù)據(jù)處理的方法放在getters中,將各個(gè)組件的功能進(jìn)行組件化,保證父組件的層次結(jié)構(gòu)清晰明了。


以上就是關(guān)于實(shí)現(xiàn)通過getters和state獲取vuex的全局狀態(tài)的知識(shí)分享,相信看完這篇文章的小伙伴們一定能運(yùn)用這些方法在項(xiàng)目開發(fā)中。當(dāng)然,可能有不足的地方,歡迎大家在評論區(qū)留言指正!

下期文章將介紹vue最新狀態(tài)管理工具Pinia的入門知識(shí)~
感興趣的小伙伴可以訂閱本專欄,方便后續(xù)了解學(xué)習(xí)~
覺得這篇文章有用的小伙伴們可以點(diǎn)贊?收藏?關(guān)注哦~

Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)文章來源地址http://www.zghlxwxcb.cn/news/detail-435000.html

到了這里,關(guān)于Vuex從了解到實(shí)際運(yùn)用(二)——獲取vuex中的全局狀態(tài)(state getters)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue項(xiàng)目保持用戶登錄狀態(tài)(localStorage + vuex 刷新頁面后狀態(tài)依然保持)

    Vue項(xiàng)目保持用戶登錄狀態(tài)(localStorage + vuex 刷新頁面后狀態(tài)依然保持)

    ????????在前端項(xiàng)目開發(fā)中,實(shí)現(xiàn)用戶的登陸注冊功能時(shí)常常會(huì)有一個(gè)問題,那就是我們設(shè)置的登錄狀態(tài),在瀏覽器頁面刷新后就消失了,這其實(shí)只是因?yàn)槲覀儧]有保存用戶狀態(tài)。 這里小馬演示使用的是 localStorage ? + ? vuex 方法(其他諸如 sessionStorage、cookie 等用法相同,

    2023年04月08日
    瀏覽(23)
  • 微信小程序通過 wxministore 實(shí)現(xiàn)類似于vuex的全局裝填數(shù)據(jù)管理

    微信小程序通過 wxministore 實(shí)現(xiàn)類似于vuex的全局裝填數(shù)據(jù)管理

    首先 我們打開終端 引入依賴 然后 如果你是新版開發(fā)者工具 就 構(gòu)建一下 如果你是 老版本的 微信開發(fā)者工具 就打開右上角詳情 選擇本地管理 勾選 使用 npm 模塊 然后 在根目錄下創(chuàng)建一個(gè) store.js 當(dāng)然建在哪是你自己決定的 反正 后面能引入到就好 然后 store.js 編寫代碼如下

    2024年02月05日
    瀏覽(30)
  • 從Vuex中獲取數(shù)據(jù),數(shù)據(jù)不更新

    問題: Vuex中的數(shù)據(jù)修改之后,子組件的數(shù)據(jù)不會(huì)實(shí)時(shí)更新,需要切換到其他頁面,在切換回來數(shù)據(jù)才會(huì)更新,渲染頁面 子組件代碼: 為什么會(huì)出現(xiàn)這種情況呢? 原因是因?yàn)樵谠讷@取Vuex數(shù)據(jù)時(shí),是在頁面加載前進(jìn)行獲取,在加載完畢之后,Vuex的數(shù)據(jù)修改后,你子組件的頁面

    2024年02月13日
    瀏覽(16)
  • Vue-Element-Admin項(xiàng)目學(xué)習(xí)筆記(6)Vuex狀態(tài)管理

    Vue-Element-Admin項(xiàng)目學(xué)習(xí)筆記(6)Vuex狀態(tài)管理

    前情回顧: vue-element-admin項(xiàng)目學(xué)習(xí)筆記(1)安裝、配置、啟動(dòng)項(xiàng)目 vue-element-admin項(xiàng)目學(xué)習(xí)筆記(2)main.js 文件分析 vue-element-admin項(xiàng)目學(xué)習(xí)筆記(3)路由分析一:靜態(tài)路由 vue-element-admin項(xiàng)目學(xué)習(xí)筆記(4)路由分析二:動(dòng)態(tài)路由及permission.js vue-element-admin項(xiàng)目學(xué)習(xí)筆記(5)路由分析

    2024年02月09日
    瀏覽(30)
  • 一篇文章讓你徹底了解vuex的使用及原理(上)

    文章講解的 Vuex 的版本為 4.1.0 ,會(huì)根據(jù)一些 api 來深入源碼講解,幫助大家更快掌握 vuex 的使用。 使用 Vue 實(shí)例的 use 方法把 Vuex 實(shí)例注入到 Vue 實(shí)例中。 use 方法執(zhí)行的是插件的中的 install 方法 src/store.js 從上面可以看到 Vue 實(shí)例通過 provide 方法把 store 實(shí)例 provide 到了根實(shí)例

    2023年04月23日
    瀏覽(27)
  • vue2(Vuex)、vue3(Pinia)、react(Redux)狀態(tài)管理

    vue2(Vuex)、vue3(Pinia)、react(Redux)狀態(tài)管理

    Vuex 是一個(gè)專為 Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式。它使用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),以及規(guī)則保證狀態(tài)只能按照規(guī)定的方式進(jìn)行修改。 State(狀態(tài)) :Vuex 使用單一狀態(tài)樹,即一個(gè)對象包含全部的應(yīng)用層級狀態(tài)。這個(gè)狀態(tài)樹對應(yīng)著一個(gè)應(yīng)用中的所有狀態(tài)。 Gett

    2024年01月23日
    瀏覽(27)
  • vuex中的modules使用

    ? ? ? ? ?模塊,向store注入其他子模塊,可以將其他模塊以命名空間的方式引用。 ? ? ? ? ? 為了拆分state中的數(shù)據(jù),提高可維護(hù)性,防止修改時(shí)的覆蓋和重名。 前置條件: (1)在工程的 /src/store目錄下建modules文件夾。 (2)modules文件夾下建shop.js: const shopCar = { ?? ?name

    2024年04月22日
    瀏覽(19)
  • vuex緩存接口返回的數(shù)據(jù),只在首次使用調(diào)用接口,之后使用vuex中的緩存值

    場景:同一個(gè)接口在多個(gè)頁面調(diào)用 問題:重復(fù)訪問,導(dǎo)致對服務(wù)器的重復(fù)請求,降低用戶體驗(yàn)。 解決:使用vuex的異步處理,第一次訪問時(shí)將數(shù)據(jù)緩存,下次訪問直接從緩沖中獲取,提高訪問速度 注意:刷新頁面時(shí),會(huì)把當(dāng)前頁面占用的緩存釋放掉,再重新加載新的緩存,如

    2024年02月12日
    瀏覽(13)
  • Vue3解決Vuex異步獲取數(shù)據(jù),頁面先渲染問題

    在vuex中異步請求數(shù)據(jù),頁面獲取vuex中的數(shù)據(jù)渲染頁面時(shí),數(shù)據(jù)還未返回時(shí),頁面還未渲染。 解決方法: 在數(shù)據(jù)還未返回時(shí),先不渲染頁面結(jié)構(gòu),使用骨架屏等待數(shù)據(jù)請求 等待數(shù)據(jù)返回之后,設(shè)置isShow為true,同時(shí)重新渲染頁面 完美解決Vue3數(shù)據(jù)異步獲取為完成,頁面提前渲

    2024年02月11日
    瀏覽(26)
  • vue3.2中的vuex使用

    vue3.2中的vuex使用

    Vuex 中有以下幾個(gè)核心概念: State:應(yīng)用程序的狀態(tài)存儲(chǔ)在單一的狀態(tài)樹中,即 State。State 可以通過 store.state 屬性訪問。 Mutation:狀態(tài)的變化必須通過提交 Mutation 來進(jìn)行。Mutation 是一個(gè)包含 type 和 payload 屬性的對象,type 是 Mutation 的類型,payload 是 Mutation 的有效負(fù)載。Mutat

    2023年04月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包