当前位置: 首页 > news >正文

【uni-app教程】八、UniAPP Vuex 状态管理

八、UniAPP Vuex 状态管理

  1. 概念

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

  1. 应用场景

Vue多个组件之间需要共享数据或状态。

  1. 关键规则
  • State:存储状态数据
  • Getter:从状态数据派生数据,相当于 State 的计算属性
  • Mutation:存储用于同步更改状态数据的方法,默认传入的参数为 state
  • Action:存储用于异步更改状态数据,但不是直接更改,而是通过触发 Mutation 方法实现,默认参数为context
  • Module:Vuex 模块化
  1. 交互关系

请添加图片描述

  1. 使用方式
import {mapState,mapActions
} from 'vuex'
export default {computed: {...mapState(['loginState', 'userInfo'])},methods: {...mapActions(['userLoginAction', 'userLogoutAction']),}
}
  1. 体验案例:模拟用户登陆逻辑实现

注意:配合使用 Storage 来实现刷新页面后状态持续保持的业务需求

(1)新建store目录,新建index.js文件

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)const store = new Vuex.Store({state:{userName: uni.getStorageSync('userName') ? uni.getStorageSync('userName') : '未登录用户'},mutations:{MLOGIN(state, userName){uni.setStorageSync('userName', userName)state.userName = userName},MLOGOUT(state){uni.clearStorageSync()state.userName = '退出状态用户'}},actions:{login(context, userName){context.commit('MLOGIN', userName)},logout(context){context.commit('MLOGOUT')}}
})export default store

(2)在main.js中引入store

import Vue from 'vue'
import App from './App'Vue.config.productionTip = falseApp.mpType = 'app'// 调用 store vuex 状态管理
import store from '@/store/index.js'// if (process.env.NODE_ENV === 'development') {
// 	console.log('开发环境')
// } else {
// 	console.log('生产环境')
// }const app = new Vue({...App,store
})
app.$mount()

(3)在vue页面使用

<template><view><text>通讯录</text><view>{{userName}}</view><view><button type="default" @click="login('蜡笔小新')">登陆</button><button type="default" @click="logout">退出</button></view></view>
</template><script>import {mapState,mapActions} from 'vuex' export default {data() {return {}},onLoad(){},computed:{...mapState(['userName'])},methods: {...mapActions(['login', 'logout'])}}
</script><style></style>

相关文章:

【uni-app教程】八、UniAPP Vuex 状态管理

八、UniAPP Vuex 状态管理 概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 应用场景 Vue多个组件之间需要共享数据或状态。 关键规则 State&#xff1a…...

同花顺测试面经(30min)

大概三十分钟&#xff0c;面试官人还挺好的 1.自我介绍 2.详细问你了自我介绍中的一个实习经历 3.对我们公司有什么了解 &#xff01;&#xff01;&#xff08;高频&#xff09; 4.对测试有什么看法&#xff0c;为什么选测试 5.黑盒白盒分别是什么 6.对测试左移有什么看法…...

C++-简述#ifdef、#else、#endif和#ifndef的作用

回答如下&#xff1a; #ifdef&#xff0c;#else&#xff0c;#endif和#ifndef都是预处理指令&#xff0c;用于条件编译。#ifdef&#xff1a;这个指令用来判断一个宏是否已经被定义过&#xff0c;如果已经定义过&#xff0c;则执行后面的代码块。#else&#xff1a;这个指令一般与…...

VictoriaMetrics 集群部署

官网 ## 官网 https://github.com/VictoriaMetrics/VictoriaMetrics 集群角色详解 VictoriaMetrics 集群模式。主要由 vmstorage ,vminsert,vmselect 三部分组成&#xff0c;这三个组件每个组件都可以单独进行扩展。其中: vmstorage 负责提供数据存储服务vminsert 是数据存…...

【基于感知损失的无监督泛锐化】

PercepPan: Towards Unsupervised Pan-Sharpening Based on Perceptual Loss &#xff08;PercepPan&#xff1a;基于感知损失的无监督泛锐化&#xff09; 在基于神经网络的全色锐化文献中&#xff0c;作为地面实况标签的高分辨率多光谱图像通常是不可用的。为了解决这个问题…...

在vercel上用streamlit部署网站

Verce和Streamlit都是非常流行的Web应用程序部署平台。以下是从零开始在Vercel上部署Streamlit应用程序的一些基本步骤。 安装 Streamlit 在本地计算机上安装Streamlit。可以轻松地通过在命令行中运行以下命令来安装&#xff1a; pip install streamlit为 Streamlit 应用程序…...

华为OD机试题 - 斗地主(JavaScript)| 含思路

更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜索引擎搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:斗地主题目输入输出描述示例一输入输出示例二输…...

i.MX8MP平台开发分享(clock篇)-计算clock速度相关的内核API

专栏目录:专栏目录传送门 平台内核i.MX8MP5.15.71文章目录 clk消费者clk生产者clk_set_rateclk_round_rateclk_pll1443x_recalc_rate这一篇我们具体来看看其他驱动如何使用clock,这里以lcdif驱动为例。 IMX8MP_CLK_MEDIA_BLK_CTRL_LCDIF_PIXEL是门控时钟,名为pix,这个门控时…...

实验4 设计模式实验3

实验内容: 1. 某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通 过该功能可以将原本存储在手机中的通信录、短信、照片、歌曲等资料一次性全 部拷贝到移动存储介质(例如MMC 卡或SD 卡)中。在实现过程中需要与多个 已有的类进行交互,例如通讯录管理类、短信…...

CNN基础

Tip&#xff1a;仅供自己学习记录&#xff0c;酌情参考 1. 前馈与反馈神经网络 神经网络有前馈神经网络和反馈神经网络&#xff0c;前向神经网络也就是前馈神经网络。 前馈型神经网络各神经元接收前一层的输入&#xff0c;并输出给下一层&#xff0c;没有反馈。节点分为两类…...

【UEFI基础】UEFI事件介绍

简述 在【UEFI基础】System Table和Architecture Protocols介绍Boot Service时提到有一部分与事件相关的接口&#xff0c;它们创建、触发、等待和关闭事件&#xff0c;来完成某些功能&#xff0c;本文将进一步介绍事件。 需要注意&#xff0c;因为Boot Service需要在DXE阶段才…...

Markdown 语法速查表

Markdown 速查表提供了所有 Markdown 语法元素的基本解释。如果你想了解某些语法元素的更多信息&#xff0c;请参阅更详细的基本语法和拓展语法。 #基本语法 这些是 John Gruber 的原始设计文档中列出的元素。所有 Markdown 应用程序都支持这些元素。 元素Markdown 语法标题…...

【C++】-- 类型转换

目录 前言 C语言中的类型转换 C强制类型转换 static_cast&#xff08;static静止的&#xff09; reinterpret_cast&#xff08;reinterpret重新解释&#xff09; const_cast&#xff08;const常量&#xff09; 总结 dynamic_cast&#xff08;dynamic动态&#xff09; …...

汇编基础语法和指令总结+案例(用32位汇编实现插入排序)

目录 前提知识 案例 c的插入排序 32位汇编代码 代码分析 效果展示 前提知识 常用指令add指令 sub指令 mul乘法指令 div除法指令 inc&#xff08;自增&#xff09;&#xff08;即&#xff09; dec&#xff08;自减&#xff09;&#xff08;即--&#xff09; cmp&#xf…...

C++多线程--线程安全的单例模式

0 引言 由于最近事情比较多,所以很久没有更新相应的专栏了。目前事情基本告一段落,重新恢复相应专栏的更新。 本文主要讲解在C++并发编程中如何实现线程安全的单例模式。本文主要由如下几部分构成 臭名昭著的double-check单例实现四种线程安全的单例模式单例模式使用中所带…...

(Android-RTC-9)PeerConnectionFactory

开篇前瞎扯。很久没发技术文章了&#xff0c;此文一直放着草稿箱没有完成&#xff0c;感觉自己在家庭和工作中找到了拖延的借口&#xff0c;开始慢慢变得懒惰了&#xff0c;那是万万不行的。恰逢2023开年ChatGPT的爆火&#xff0c;更让我这些普通程序员危机感瞬间飙升&#xff…...

Vector - CAPL - 定时器函数和使用

定时器在C语言中的使用我想学习过C编程的都不会陌生&#xff0c;它能够提供延时&#xff0c;完成等待一定的时间&#xff1b;它也可以实现多线程的操作&#xff0c;并行实行某些软件功能。那在CAPL中&#xff0c;定时器又能做哪些工作呢&#xff1f;又是怎么使用的呢&#xff1…...

【嵌入式C】常见问题

1、goto的使用场景有哪些&#xff1f;并讨论其局限&#xff1f; &#xff08;1&#xff09;常用来跳出死循坏&#xff1b; &#xff08;2&#xff09;在linux开发中&#xff0c;常用于打印错误&#xff1b; &#xff08;3&#xff09;goto在某些使用场合会破坏程序的栈逻辑&…...

[神经网络]Transfomer架构

一、概述 Transfomer架构与传统CNN和RNN最大的区别在于其仅依赖自注意力机制&#xff0c;而没有卷积/循环操作。其相较于RNN&#xff0c;不需要进行时序运算&#xff0c;可以更好的进行并行&#xff1b;相较于CNN&#xff0c;其一次可以关注全图而不局限于感受野尺寸。 二、模…...

C++之多态 虚函数表

多态 多态是在不同继承关系的类对象&#xff0c;去调用同一函数&#xff0c;产生了不同的行为。 需要区分一下&#xff1a;1、菱形虚拟继承&#xff0c;是在继承方式前面加上virtual&#xff1b; class Person {}; class Student : virtual public Person {}; class Teacher…...

cv_resnet18_ocr-detection保姆级教程:从安装到批量处理图片文字

cv_resnet18_ocr-detection保姆级教程&#xff1a;从安装到批量处理图片文字 1. 快速上手&#xff1a;5分钟搞定OCR文字检测 你是不是经常需要从图片里提取文字&#xff1f;比如整理扫描的文档、识别截图里的信息&#xff0c;或者处理一堆商品图片上的标签。手动打字太慢&…...

OpenClaw多模型对比:Phi-3-mini-128k-instruct与Qwen在自动化任务中的表现

OpenClaw多模型对比&#xff1a;Phi-3-mini-128k-instruct与Qwen在自动化任务中的表现 1. 测试背景与实验设计 去年夏天&#xff0c;当我第一次尝试用OpenClaw自动化处理日常办公任务时&#xff0c;最困扰我的问题就是模型选择。不同的模型在理解能力、响应速度和资源消耗上差…...

效率倍增器:OpenClaw+千问3.5-27B自动化邮件处理

效率倍增器&#xff1a;OpenClaw千问3.5-27B自动化邮件处理 1. 为什么需要自动化邮件处理 每天早晨打开邮箱&#xff0c;看到堆积如山的未读邮件时&#xff0c;那种窒息感我至今难忘。作为技术团队的接口人&#xff0c;我的邮箱常年保持着2000未读邮件的状态——重要需求埋没…...

OpenClaw跨平台控制:Qwen3.5-9B管理多台电脑

OpenClaw跨平台控制&#xff1a;Qwen3.5-9B管理多台电脑 1. 为什么需要跨设备自动化管理 去年夏天&#xff0c;我同时处理三个项目时遇到了一个典型问题&#xff1a;每天需要在三台不同电脑上重复执行数据同步、日志收集和报告生成。手动操作不仅耗时&#xff0c;还经常遗漏步…...

敏捷还是瀑布?数字化项目的治理模式选择

敏捷还是瀑布&#xff1f;数字化项目的治理模式选择 项目背景&#xff1a;24年酒店PMS换系统和CRM上线。一、前言&#xff1a;当"稳定交付"遇上"快速迭代" 传统零售和酒店餐饮行业每年都要面对数十个数字化项目的治理决策。从ERP升级到会员中台建设&#x…...

新一代高端工业 HMI 如何重塑现场交互体验?

繁易 FPADX 系列电容触摸屏支持 3D 可视化、多点触控、Web 远程访问与大型工程承载&#xff0c;帮助工业设备实现更高效、更直观、更智能的人机交互体验。在工业自动化持续升级的今天&#xff0c;触摸屏早已不再只是设备上的一个操作界面。对于设备制造商、系统集成商和终端工厂…...

DHL集团与中国外运将进一步深化全球业务协同

、美通社消息&#xff1a;近日&#xff0c;DHL集团与中国外运正式签署谅解备忘录。双方宣布&#xff0c;将在过往坚实合作的基础上&#xff0c;进一步深化全球业务协同&#xff0c;共同开启新一轮战略对话与长远布局。此次签约正值双方合资公司——中外运敦豪成立四十周年。作为…...

网安工程师好就业吗?零基础转行如何操作?

“ 就业是好就业的&#xff0c;但是太卷了&#xff0c;因为它本身就是个门槛低&#xff0c;技术高的工作。如果决定要走这条路&#xff0c;那么一定要下定决心好好学&#xff0c;学出来了这下半辈子就不用愁了。” 网络安全&#xff0c;这个在现代社会愈发受到重视的领域&#…...

GD32F407标准库工程创建全流程:从官网固件库下载到Keil5编译通过

GD32F407标准库工程创建全流程&#xff1a;从官网固件库下载到Keil5编译通过 第一次接触GD32F407开发板时&#xff0c;最让人头疼的就是如何快速搭建开发环境。与STM32不同&#xff0c;GD32的官方资源分散&#xff0c;标准库文件结构复杂&#xff0c;新手很容易在文件复制和工程…...

如何通过哈氏训练提升孩子的学习能力以应对多动症表现和作业拖延症?

如何运用哈氏训练助力孩子克服多动症表现与作业拖延 哈氏训练是一种有效的应对策略&#xff0c;尤其对有多动症表现和作业拖延症的孩子。首先&#xff0c;这种训练方法可以帮助孩子建立稳定的日常作息&#xff0c;提高他们的注意力和自我控制能力。通过结构化的活动和渐进式的任…...