【uniapp】vue2 使用 Vuex 狀態管理

創建store文件夾:store/index.js

// index.js
import Vue from 'vue'
import Vuex from 'vuex'
import address from './modules/address.js'Vue.use(Vuex)const store = new Vuex.Store({modules: {address}
})export default store

創建modules文件夾:modules/address.js

import api from "../../api/api";export default {namespaced: true, // 啟用命名空間state: {addressInfo: {}},mutations: {// 用戶收貨地址SET_DELIVERY_DAARESS(state, detail) {console.log('SET_DELIVERY_DAARESS:', state, detail)state.addressInfo = detail}},actions: {// 獲取收貨地址詳情async fetchGetDeliveryInfo({ commit }, id) {try {const { data: {data} } = await api.getDeliveryInfo(id)commit('SET_DELIVERY_DAARESS', data)return data} catch (err) {console.error(err)throw err}},// 添加收貨地址async submitAddDeliveryInfo({ commit }, formData) {try {const { data: {data} } = await api.addDeliveryInfo(formData)return data} catch (err) {console.error(err)throw err}},// 添加收貨地址async modifyUpdateDeliveryInfo({ commit }, formData) {try {const { data: {data} } = await api.updateDeliveryInfo(formData)return data} catch (err) {console.error(err)throw err}},},getters: {getDeliveryAddress: (state) => state.addressInfo}
}

main.js 全局掛載

import store from './store'const app = new Vue({store,...App
})

對應頁面調用

import { mapState, mapActions } from 'vuex'computed: {// 從名為'address'的 Vuex 模塊中映射 addressInfo 狀態到組件的計算屬性// 將返回的對象混入到 computed 對象中...mapState('address', ['addressInfo'])
},
methods: {// 從'address'模塊映射三個 action 方法到組件方法中...mapActions('address', ['fetchGetDeliveryInfo','submitAddDeliveryInfo','modifyUpdateDeliveryInfo']),async showAddress() {try {await this.fetchGetDeliveryInfo({id: this.id})// 如果 addressInfo 有收貨地址的數據就填入頁面if(this.addressInfo) {this.form = this.addressInfo}} catch (err) {tool.alert(err)}},// 保存地址async saveAddress() {try {// 如果有 id 就更新收貨地址,沒有就調用新增地址 apiconst api_ = this.id == '' ? this.submitAddDeliveryInfo(this.form) :this.modifyUpdateDeliveryInfo(this.form)const res = await api_} catch (err) {tool.alert(err)}},
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/79528.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79528.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/79528.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c# 簡單實現將Message的內容保存到txt中,超過100個則清理舊文件

using System; using System.IO; using System.Threading;public static class LogManager {private static readonly object _fileLock new object(); // 線程安全鎖private const int MaxFiles 100; // 最大文件數限制private const string LogDire…

阿里云鏡像加速僅支持阿里云產品了

最近在拉取docker鏡像時一直報超時的錯誤: docker pull hello-world Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exce…

從零實現Git安裝、使用

一、git安裝 Git官方下載 1.下載exe程序 2.雙擊安裝,一直點擊next,默認安裝 安裝完成后,在任意文件夾右鍵,出現下圖所示,即為安裝成功。 3.【Git Bash Here】調出命令窗口,設置用戶名和 email 地址。 gi…

生產環境中如何使用Caffeine+Redis實現二級緩存(詳細分析了遇到的各種情況)

生產環境中如何使用CaffeineRedis實現二級緩存(詳細分析了各種情況) 本篇主要講解的是實現CaffeineRedis實現一個現成的使用流程。下一篇講解什么是Caffeine以及caffeine的使用 00背景: 使用Caffeine和Redis的二級緩存方案源自于分布式系統…

RT-Thread開發文檔合集

瑞薩VisionBoard開發實踐指南 RT-Thread 文檔中心 RT-Thread-【RA8D1-Vision Board】 RA8D1 Vision Board上的USB實踐RT-Thread問答社區 - RT-Thread 【開發板】環境篇:05燒錄工具介紹_嗶哩嗶哩_bilibili 【RA8D1-Vision Board】基于OpenMV 實現圖像分類_嗶哩嗶哩_…

甘果桌面tv版下載-甘果桌面安卓電視版使用教程

甘果桌面 TV 版是一款備受關注的應用,它可以讓安卓電視的界面更加個性化、操作更加便捷。接下來,我們就詳細了解一下甘果桌面 TV 版的下載方法以及安卓電視版的使用教程。 甘果桌面 TV 版下載 打開你的安卓電視,找到并進入電視自帶的應用商店…

RAII資源管理理解

基礎介紹 RAII (Resource Acquisition Is Initialization) 是一種 C 編程范式,這不是一個語法特性,而是一種處理方式。RAII的思想: 資源獲取與對象初始化同時發生資源釋放與對象銷毀同時發生通過對象的生命周期來管理資源,確保資…

解鎖元生代:ComfyUI工作流與云原生后端的深度融合

目錄 藍耘元生代:智算新勢力崛起? ComfyUI 工作流創建詳解? ComfyUI 初印象? 藍耘平臺上搭建 ComfyUI 工作流? 構建基礎工作流實操? 代碼示例與原理剖析? 云原生后端技術全景 云原生后端概念解析? 核心技術深度解讀? 藍耘元生代中兩者的緊密聯系?…

實戰篇|多總線網關搭建與量產驗證(5000 字深度指南)

引言 1. 環境準備與硬件選型 1.1 項目需求分析 1.2 SoC 與開發板選型 1.3 物理接口與 PCB 設計 1.4 電源與供電保護 2. 軟件架構與協議棧移植 2.1 分層架構詳解 2.2 協議棧移植步驟 2.3 高可用驅動設計 2.4 映射邏輯與 API 定義 3. 開發流程與實踐 3.1 敏捷迭代與里程碑 3.2 核…

Kafka安全認證技術:SASL/SCRAM-ACL方案詳解

#作者 :張桐瑞 文章目錄 1Kafka安全認證技術介紹2基礎設置3 配置SASL/SCRAM認證3.1編寫server.properties配置3.2編寫kafka.conf密碼文件3.3編寫user.properties配置文件3.4編寫kafka-run-class.sh腳本文件3.5Zk中增加kafka用戶3.6啟動kafka進程 1Kafka安全認證技術…

TCP/IP和UDP協議的發展歷程

TCP/IP和UDP協議的發展歷程 引言 互聯網的發展史是人類技術創新的輝煌篇章,而在這一發展過程中,通信協議發揮了奠基性的作用。TCP/IP(傳輸控制協議/互聯網協議)和UDP(用戶數據報協議)作為互聯網通信的基礎…

PhotoShop學習10

1.畫板功能的使用 使用畫板功能可以輕松針對不同的設備和屏幕尺寸設計網頁和 APP。畫板是一種容器,類似于特殊圖層組。畫板中的圖層在圖層面板中,按畫板進行分組。 使用畫板,一個文檔中可以有多個設計版面,這樣可以在畫板之間輕…

X-AnyLabeling開源程序借助 Segment Anything 和其他出色模型的 AI 支持輕松進行數據標記。

一、軟件介紹 文末提供源碼和程序下載學習 使用 X-AnyLabeling開源程序可以 導入、管理和保存數據。用戶可以通過多種方式導入圖像和視頻文件,包括快捷方式或菜單選項。此外,它還涵蓋數據刪除、圖像切換以及標簽和圖像數據的保存,以確保高效…

【深度解析】PlatformIO多環境配置實踐:ESP32/ESP32-S3/ESP32-C3適配指南

一、前言:為什么需要多環境配置? 在物聯網開發中,我們經常需要適配不同型號的硬件平臺(如ESP32系列),并且github上多數關于ESP32的都適配了多種開發板。傳統開發方式需要為每個平臺維護獨立項目,而Platfor…

React 列表渲染基礎示例

React 中最常見的一個需求就是「把一組數據渲染成一組 DOM 元素」,比如一個列表。下面是我寫的一個最小示例,目的是搞清楚它到底是怎么工作的。 示例代碼 // 定義一個靜態數組,模擬后續要渲染的數據源 // 每個對象代表一個前端框架&#xf…

NHANES指標推薦:CMI

文章題目:Association between cardiometabolic index and biological ageing among adults: a population-based study DOI:10.1186/s12889-025-22053-3 中文標題:成年人心臟代謝指數與生物衰老之間的關系:一項基于人群的研究 發…

QT調用ffmpeg庫實現視頻錄制

可以通過QProcess調用ffmpeg命令行,也可以直接調用ffmpeg庫,方便。 調用庫 安裝ffmpeg ffmpeg -version 沒裝就裝 sudo apt-get update sudo apt-get install ffmpeg sudo apt-get install ffmpeg libavdevice-dev .pro引入庫路徑,引入庫 LIBS += -L/usr/lib/aarch64-l…

消息中間件——RocketMQ(二)

前言:此篇文章系本人學習過程中記錄下來的筆記,里面難免會有不少欠缺的地方,誠心期待大家多多給予指教。 RocketMQ(一) 接上期內容:上期完成了RocketMQ單機部署知識。下面學習RocketMQ集群相關知識&#xf…

pyqt環境配置

文章目錄 1 概述2 PyQt6和PySide6區別3 環境配置4 配置PySide65 配置PyQt66 配置外部工具7 添加模板8 使用pyside6-project構建工程9 常見錯誤10 相關地址 更多精彩內容👉內容導航 👈👉Qt開發 👈👉python開發 &#x1…

金融數據庫轉型實戰讀后感

榮幸收到老友太保科技有限公司數智研究院首席專家林春的簽名贈書。 這是國內第一本關于OceanBase數據庫實際替換過程總結的的實戰書。打個比方可以說是從戰場上下來分享戰斗經驗。讀后感受頗深。我在這里講講我的感受。 第三章中提到的應用改造如何降本。應用改造是國產化替換…