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

vue~vuex的使用

這篇具有很好參考價值的文章主要介紹了vue~vuex的使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

存儲相關(guān)

Vuex 和本地存儲(如localStorage)以及 cookie 存儲(如 document.cookie)之間有一些關(guān)系,但它們是不同的概念,用于不同的目的。

  1. Vuex

    • Vuex 是 Vue.js 的官方狀態(tài)管理庫,用于在 Vue.js 應(yīng)用程序中管理應(yīng)用程序的全局狀態(tài)。
    • Vuex 主要用于在前端應(yīng)用程序中存儲和管理各種狀態(tài),包括用戶信息、應(yīng)用程序配置、數(shù)據(jù)緩存等。它提供了一個中心化的狀態(tài)存儲機制,可以讓不同組件之間共享和同步狀態(tài)。
    • Vuex 的數(shù)據(jù)存儲在內(nèi)存中,通常不會持久化到硬盤上。
  2. 本地存儲(localStorage)

    • localStorage 是瀏覽器提供的一種本地存儲機制,允許你將數(shù)據(jù)以鍵值對的形式存儲在瀏覽器中,數(shù)據(jù)可以在不同頁面和會話之間保持持久性。
    • localStorage 主要用于在瀏覽器中存儲小量的數(shù)據(jù),如用戶配置、用戶首選項、臨時會話數(shù)據(jù)等。它是一個簡單的持久化數(shù)據(jù)存儲工具。
  3. Cookie 存儲

    • cookie 是另一種在瀏覽器中存儲數(shù)據(jù)的方式,但它通常用于存儲小的文本數(shù)據(jù),如用戶身份驗證令牌、會話標識等。
    • cookie 具有一些限制,如每個 cookie 的大小限制和安全性考慮,因此不適合用于存儲大量數(shù)據(jù)或敏感信息。

關(guān)系和用途:

  • Vuex 可以與本地存儲和 cookie 存儲結(jié)合使用,以實現(xiàn)更復(fù)雜的狀態(tài)管理和數(shù)據(jù)持久化。例如,你可以將某些重要的應(yīng)用程序狀態(tài)存儲在 Vuex 中,同時將用戶首選項或會話令牌等數(shù)據(jù)存儲在 localStoragecookie 中。
  • Vuex 可以使用 localStorage 或其他存儲機制來實現(xiàn)狀態(tài)的持久化,以便在頁面刷新或重新加載時保持應(yīng)用程序狀態(tài)不變。這通常涉及到將狀態(tài)數(shù)據(jù)從 Vuex 存儲到 localStorage 中,并在應(yīng)用程序初始化時從 localStorage 恢復(fù)狀態(tài)。

需要注意的是,存儲敏感信息(如用戶密碼)通常不應(yīng)存儲在本地存儲或 cookie 中,而應(yīng)使用更安全的方式,如后端服務(wù)器的會話管理或令牌驗證。存儲在本地的數(shù)據(jù)應(yīng)該是非敏感的,并經(jīng)過適當?shù)募用芎桶踩蕴幚怼?/p>

基本屬性

Vuex 是 Vue.js 的官方狀態(tài)管理庫,用于在Vue.js應(yīng)用程序中管理應(yīng)用程序的全局狀態(tài)。Vuex.StoreVuex 的核心部分之一,它包含了狀態(tài)(state)、變化狀態(tài)的方法(mutations)、觸發(fā)狀態(tài)變化的方法(actions)以及獲取狀態(tài)的方法(getters)。

Vuex.Store 中,statemutations 分別用于存儲和修改應(yīng)用程序的狀態(tài)。

  1. state(狀態(tài))state 是應(yīng)用程序的數(shù)據(jù)源。它是一個普通的 JavaScript 對象,包含了應(yīng)用程序的全局狀態(tài)數(shù)據(jù)。通過訪問 state,你可以獲取應(yīng)用程序的當前狀態(tài)信息。例如:

    const store = new Vuex.Store({
      state: {
        count: 0
      }
    })
    

    在上面的示例中,state 包含一個名為 count 的狀態(tài)屬性,初始值為 0。

  2. mutations(變化)mutations 是用來修改 state 的方法。它們是同步的函數(shù),每個 mutation 接收一個當前狀態(tài)的參數(shù)(state)和一個用于更新狀態(tài)的參數(shù)(通常稱為 payload)。mutations 的主要作用是確保狀態(tài)變更的可追蹤性,因為每個狀態(tài)的變更都必須經(jīng)過一個明確的步驟。例如:

    const store = new Vuex.Store({
      state: {
        count: 0
      },
      mutations: {
        increment(state) {
          state.count++
        },
        decrement(state) {
          state.count--
        }
      }
    })
    

    在上面的示例中,我們定義了兩個 mutations,分別用于增加和減少 count 狀態(tài)的值。要觸發(fā)這些 mutations,你可以通過 store.commit 方法來調(diào)用它們:

    store.commit('increment') // 增加 count
    store.commit('decrement') // 減少 count
    

    通過使用 commit 方法,你可以確保在應(yīng)用程序的狀態(tài)發(fā)生變化時進行跟蹤和記錄。

總之,Vuex.Store 中的 state 用于存儲應(yīng)用程序的全局狀態(tài),而 mutations 用于定義可追蹤的方法,用于修改狀態(tài)。這種明確的狀態(tài)管理方式有助于在大型應(yīng)用程序中更好地管理和維護狀態(tài)。

actions和getters

當使用 Vuex 進行狀態(tài)管理時,除了 statemutations,還有 actionsgetters 來進一步組織和管理你的應(yīng)用程序的狀態(tài)。

  1. Actions(動作)

    • Actions 是用于處理異步操作和業(yè)務(wù)邏輯的地方。它們可以包含任何 JavaScript 代碼,并且可以觸發(fā) mutations 來修改 state。

    • Actions 是通過 store.dispatch 方法來觸發(fā)的,可以接受一個對象參數(shù),其中包含要傳遞給 mutation 的數(shù)據(jù)。這樣可以將異步操作和數(shù)據(jù)獲取與 mutations 分離開來,使代碼更具可維護性。

    示例:

    const store = new Vuex.Store({
      state: {
        count: 0
      },
      mutations: {
        increment(state) {
          state.count++
        }
      },
      actions: {
        asyncIncrement(context) {
          setTimeout(() => {
            context.commit('increment') // 觸發(fā) mutation 增加 count
          }, 1000)
        }
      }
    })
    
    // 在組件中觸發(fā) action
    store.dispatch('asyncIncrement') // 1 秒后增加 count
    
  2. Getters(獲取器)

    • Getters 用于從 state 中派生出一些衍生狀態(tài)或者進行一些計算。它們允許你在組件中獲取并使用派生的狀態(tài),而不需要在組件內(nèi)部重復(fù)相同的計算邏輯。

    • Getters 定義為一個函數(shù),接受 state 作為參數(shù),可以返回根據(jù) state 計算得出的新狀態(tài)。

    示例:

    const store = new Vuex.Store({
      state: {
        items: [
          { id: 1, name: 'Item 1', price: 10 },
          { id: 2, name: 'Item 2', price: 20 },
          { id: 3, name: 'Item 3', price: 30 }
        ]
      },
      getters: {
        totalPrice(state) {
          return state.items.reduce((total, item) => total + item.price, 0)
        }
      }
    })
    
    // 在組件中使用 getter
    const total = store.getters.totalPrice // 獲取總價格,值為 60
    

    在上面的示例中,totalPrice 是一個 getter,它計算了所有商品的總價格。通過使用 getter,你可以在組件中輕松地獲取這個派生的狀態(tài),而不必在每個組件中都重新計算。

總之,actions 用于處理異步操作和業(yè)務(wù)邏輯,而 getters 用于派生狀態(tài)或進行計算,它們都有助于更好地組織和管理 Vuex 應(yīng)用程序的狀態(tài)。

vuex中的dispatch

dispatch 是 Vuex 中用于觸發(fā)一個 action 的方法。action 是用于處理異步操作和業(yè)務(wù)邏輯的一種機制,它可以包含任何 JavaScript 代碼,并且可以觸發(fā) mutation 來修改 state。

使用 dispatch 方法可以在組件中觸發(fā)一個 action,并傳遞一些參數(shù)給該 action。在 action 內(nèi)部,你可以執(zhí)行異步操作,例如發(fā)送網(wǎng)絡(luò)請求、處理數(shù)據(jù),然后在需要時觸發(fā)相關(guān)的 mutation 來更新應(yīng)用程序的狀態(tài)。

示例:

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

const store = new Vuex.Store({
  state: {
    count: 0,
  },
  mutations: {
    increment(state) {
      state.count++;
    },
  },
  actions: {
    asyncIncrement(context) {
      // 模擬異步操作,例如發(fā)送網(wǎng)絡(luò)請求
      setTimeout(() => {
        context.commit('increment'); // 觸發(fā) mutation 增加 count
      }, 1000);
    },
  },
});

// 在組件中觸發(fā) action
store.dispatch('asyncIncrement'); // 1 秒后增加 count

在上面的示例中,我們創(chuàng)建了一個名為 asyncIncrementaction,它包含了一個異步的 setTimeout 操作。當調(diào)用 store.dispatch('asyncIncrement') 時,它會在一秒后觸發(fā) increment mutation 來增加 count。這樣,我們就可以使用 dispatch 方法來觸發(fā)異步操作,并在操作完成后更新應(yīng)用程序的狀態(tài)。

總之,dispatch 方法是用于觸發(fā) Vuex 中的 action 的工具,它允許你在組件中進行異步操作,并與應(yīng)用程序的狀態(tài)進行交互。這有助于更好地管理和組織 Vuex 應(yīng)用程序中的業(yè)務(wù)邏輯。文章來源地址http://www.zghlxwxcb.cn/news/detail-707871.html

到了這里,關(guān)于vue~vuex的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 瀏覽器的存儲,cookie(httponly)、localStorage、sessionStorage、indexed對比

    瀏覽器提供了多種客戶端存儲機制,每種機制都有其特定的用途、特性和限制。以下是對 cookie 、 localStorage 、 sessionStorage 和 IndexedDB 的對比: 1. Cookie 存儲大小 : 通常限制為4KB。 生命周期 : 可以設(shè)置過期時間。如果沒有設(shè)置,它的生命周期將與會話持續(xù)相同,即關(guān)閉瀏覽器后

    2024年02月10日
    瀏覽(29)
  • 前端存儲不要局限于cookies、Web Storage(sessionStorage、localStorage)還有它!

    前端存儲不要局限于cookies、Web Storage(sessionStorage、localStorage)還有它!

    前端本地化存儲算是一個老生常談的話題了,我們對于 cookies、Web Storage(sessionStorage、localStorage)的使用已經(jīng)非常熟悉,這段時間公司提出了一個需求,業(yè)務(wù)員在移動端作業(yè)時需要有一個暫存功能,暫時存儲填寫的數(shù)據(jù),我分析后數(shù)據(jù)量還比較大,前后查過各種資料?,F(xiàn)在分

    2024年02月19日
    瀏覽(19)
  • Vue項目保持用戶登錄狀態(tài)(localStorage + vuex 刷新頁面后狀態(tài)依然保持)

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

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

    2023年04月08日
    瀏覽(23)
  • vue中vuex的五個屬性和基本用法,另加js-cookie的使用

    vue中vuex的五個屬性和基本用法,另加js-cookie的使用

    VueX 是一個專門為 Vue.js 應(yīng)用設(shè)計的狀態(tài)管理構(gòu)架,統(tǒng)一管理和維護各個vue組件的可變化狀態(tài)(你可以理解成 vue 組件里的某些 data )。 state, getters, mutations, actions, modules。 1. state: vuex的基本數(shù)據(jù),用來存儲變量 2. geeter: 從基本數(shù)據(jù)(state)派生的數(shù)據(jù),相當于state的計算屬性 3.

    2024年02月14日
    瀏覽(43)
  • 【Vue】瀏覽器緩存sessionStorage、localStorage、Cookie

    【Vue】瀏覽器緩存sessionStorage、localStorage、Cookie

    目錄 一、sessionStorage 1、簡介 2、方法 3、代碼示例 a、存取單個數(shù)據(jù) b、存取對象 c、清除數(shù)據(jù) 二、localStorage 1、簡介 2、方法 3、代碼示例 三、cookie 1、簡介 2、方法 3、代碼示例 四、三者區(qū)別 1、sessionStorage與localStorage區(qū)別 2、sessionStorage、localStorage、cookie區(qū)別 五、往期相關(guān)優(yōu)

    2024年02月07日
    瀏覽(31)
  • 原生JavaScript實現(xiàn)本地存儲(localStorage)和會話存儲(sessionStorage)

    目錄 一、簡單介紹 二、localStorage本地存儲 三、sessionStorage會話存儲 本地存儲和會話存儲的目的,是將所輸入的文件存入到瀏覽器中,在需要的時候,直接調(diào)用,但是本地存儲和會話存儲有著一定的區(qū)別,本地存儲,在不主動刪除的情況下,會一直保留在瀏覽器中,會話存儲是

    2023年04月08日
    瀏覽(32)
  • js-cookie的使用以及存儲token安全的注意要點

    獲取 設(shè)置 刪除 1、我們最好在設(shè)置存儲token的時候增加SameSite屬性,SameSite屬性可以設(shè)置為Strict、Lax或None。 Strict: cookie只會在同源請求中發(fā)送 Lax: cookie會在同源請求和頂級導航(比如鏈接點擊)中發(fā)送 None: cookie會在所有請求中發(fā)送,但這需要Secure屬性同時設(shè)置為true 2、使用CSRF T

    2024年02月04日
    瀏覽(27)
  • 前端存儲使用localForage代替localStorage

    localForage是一個JavaScript庫,能夠類似localStorage的存儲。 他是異步存儲,可以優(yōu)化你的web應(yīng)用程序的離線體驗,而且能存儲多種類型的數(shù)據(jù)。 支持es6的 Promises API,而且支持添加回調(diào)函數(shù)。 安裝成功后,即可在項目中使用,這里以vue為例: 與localStorage大致相同:https://developer.

    2024年02月16日
    瀏覽(23)
  • cookie、localStorage和sessionStorage詳解

    cookie、localStorage和sessionStorage詳解

    ? 目錄 一、cookie 二、Web storage 1、localStorage 2、sessionStorage的使用 ?3、復(fù)雜數(shù)據(jù)類型儲存 Web Storage帶來的好處:? 三、sessionStorage、localStorage和cookie的區(qū)別? cookie是客戶端與服務(wù)器端進行會話使用的一個能夠在瀏覽器本地化存儲的技術(shù)。簡言之,cookie是服務(wù)器端發(fā)給客戶端的文

    2024年02月03日
    瀏覽(14)
  • cookie和localstorage在iframe中的應(yīng)用

    背景: 現(xiàn)有項目中有一個用戶中心系統(tǒng),里面用iframe嵌入不同項目的頁面,多個項目公用一個token 解決方案: 子頁面通過url參數(shù)的方式傳遞token, 在url拿到token之后,剛開始將token存入localstorage中,但localstorage是永久保存,在瀏覽器關(guān)掉之后,再重新打開頁面,只要token沒有

    2024年02月08日
    瀏覽(16)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包