uniapp-vuex

uniapp 中 vuex 的使用 / files.keys() 匹配到的文件// ['./common.js', './user.js']files.keys().forEach(key => { // files(key) 文件 export 出的数据 const data = files(key)});// this 是 vue 实例,所以,当挂载到 Vue 上时要注意 this 的指向this.$store.state// 挂载到 uni 上时获取 vuex 数据uni.$store.state。 阅读详情

uniapp-vuex的学习

长时间保存用户的登录状态,app的缓存有时间限制,所以想学习一下用vuex来存储
官方文档
网址
main.js

import Vue from 'vue'
import Antd from 'ant-design-vue';
import App from './App'
import store from './store/'
import 'ant-design-vue/dist/antd.css';
import router from './router'


Vue.config.productionTip = false

Vue.use(Antd);

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  components: { App },
  template: '<App/>'
})

登录封装:

import store from '@/store'
import { ACCESS_TOKEN } from '@/store/mutation-types'

const user = {
  state: {
    userId: '',
    token: '',
    name: '',
    welcome: '',
    avatar: '',
    roles: [],
    buttons: [], // 按钮权限
    info: {},
    loginname:''
  },

  mutations: {
    SET_TOKEN: (state, token) => {
      console.log("token",token);
      state.token = token
    },
    SET_NAME: (state, name) => {
      state.name = name
    },
    SET_AVATAR: (state, avatar) => {
      state.avatar = avatar
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles
    },
    SET_INFO: (state, info) => {
      state.info = info
    },
    SET_BUTTONS: (state, buttons) => {
      state.buttons = buttons
    },
    SET_LOGINNAME: (state, loginname) => {
      state.loginname = loginname
    },
    SET_USERID: (state, userId) => {
      console.log("111111",userId);
      state.userId = userId
    }
  },

  actions: {
    // 登录
    // Login ({ commit }, userInfo) {
    //   return new Promise((resolve, reject) => {
    //     login(userInfo).then((res) => {
    //       if (res.data.code == 200) {
    //         window.localStorage.setItem('token',res.data.token)
    //         this.$store.commit('SET_TOKEN', res.data.token)
    //       } else {
    //         this.$message.error(res.data.msg)
    //       }
    //       resolve(res)
    //     }).catch(error => {
    //       reject(error)
    //     })
    //   })
    // },

    // 获取用户信息
    // GetInfo ({ commit }) {
    //   return new Promise((resolve, reject) => {
    //     loginInfo(state.token).then((res)=>{
    //       // console.log("userInfo:",res)
    //       commit('SET_ROLES', result.data.roleIds)
    //       commit('SET_USERID', result.data.userId)
    //       commit('SET_NAME', result.data.userName)
    //       commit('SET_LOGINNAME',result.data.loginName)
    //       window.localStorage.setItem('userInfo',JSON.stringify(res.data))
    //       console.log("loginName:",state.loginname)
    //       resolve(res)
    //     }).catch(error => {
    //       reject(error)
    //     })
    //   })
    // },

    // 登出
    Logout ({ commit, state }) {
      return new Promise((resolve) => {
        logout(state.token).then(() => {
          resolve()
        }).catch(() => {
          resolve()
        }).finally(() => {
          commit('SET_TOKEN', '')
          commit('SET_ROLES', [])
          commit('SET_INFO', {})
          store.remove(ACCESS_TOKEN)
        })
      })
    }

  }
}

export default user

// 设置缓存
window.localStorage.setItem('token',res.data.token)
this.resToken = window.localStorage.getItem("token");
window.localStorage.removeItem("token");

记录一下代码
index.js:

import Vue from 'vue'
import Vuex from 'vuex'
import user from './user'
Vue.use(Vuex);//vue的插件机制

//Vuex.Store 构造器选项
const store = new Vuex.Store({
	modules:{
		user
	}
})
export default store

user.js:

import {INCREMENT,DECREMENT} from './mutations-types'
const user={
	//存放全局状态变量
	state:{
		count:0
	},
	//修改全局状态变量,一定要在mutations里面
	mutations:{
		//mutations里面的常量名,一般需要统一设置管理
		//一般大写
		//存放在mutations-types.js文件中
		INCREMENT(state){
			state.count +=1
		},
		DECREMENT(state){
			state.count -=1
		}
		
	},
	//对状态进行包装/过滤什么的
	getters:{
		myCount(state){
			return `count is ${state.count}`
		}
	},
	//状态的业务逻辑
	actions:{
		myIncrease(context){
			context.commit('increment')
		},
		myDecrease(context){
			context.commit('decrement')
		}
	}
}
export default user

mutations-types.js:

export default {
	INCREMENT:'INCREMENT',
	DECREMENT:'DECREMENT'
}

newvuex.vue:

<template>
	<view>
		<view class="">
			{{count}}
		</view>
		<view class="">
			{{myCount}}
		</view>
		<!-- 第一种,直接调用mutations里面的方法-->
		<button type="default" @click="INCREMENT">增加--increment</button>
		<!-- 第二种,通过别的方法调用,可以再加别的功能 -->
		<button type="default" @click="increase">增加--increase</button>
		<!-- 直接调用actions里面的方法 -->
		<button type="default" @click="decrease">减少---decrease</button>
	</view>
</template>

<script>
	import{mapState,mapGetters} from "vuex";
	import{mapMutations,mapActions} from "vuex";
	export default{
		name:"aee",
		computed:{
			//第一种--给 mapState 传一个字符串数组
			// ...mapState(['count']),
			//第二种--从state中拿到数据 箭头函数可使代码更简练
			// ...mapState({
			// 	count:state=>state.user.count
			// }),
			//为了能够使用 this 获取组件自己的data数据,必须使用常规函数
			...mapState({
				count(state){
					return 'count is'+state.user.count
				}
			}),
			...mapGetters(['myCount'])
		},
		methods:{
			...mapMutations(['INCREMENT'],['DECREMENT']),
			...mapActions(['myIncrease'],['myDecrease']),
			increase(){
				this.$store.commit('INCREMENT')
			},
			//不知道为什么,这段代码会报错
			decrease(){
				this.myDecrease()
			}
		}
	}
</script>

<style>
</style>

#如何在组件里使用vuex的数据
在这里插入图片描述

Allegro File菜单实战指南:从导入网表到导出BOM的完整流程 PCB设计离不开对EDA软件菜单体系的深入理解。在Cadence Allegro中,File菜单是数据流转的中枢,它不仅是新建、打开、保存的基础入口,更是连接原理图与版图、设计与制造的关键桥梁。工程师常遇到的“导入网表报错”“导出BOM为空”“板框不闭合”等高频问题,大多源于对File菜单中Import与Export功能的理解不到位。从基础概念出发,先厘清Import(网表、DXF、IPC)与Export(BOM、ODB++、DXF)的工作原理,再结合版本兼容、封装库路径、单位设置等工程细节,即可构建完整的 阅读详情

相关推荐

机械臂电机力矩计算

设计 6 轴机械臂时,电机力矩计算是确保机械臂负载能力、运动精度和安全性的核心环节,需围绕和两大核心展开,结合机械臂结构参数(如关节长度、质量分布)、负载需求(如末端负载重量、惯性)和运动参数(如加速度、角速度)逐步推导。

ZPC8210的博客 1857

uniapp中vuex的应用

前言 提示:这里可以添加本文要记录的大概内容: 记录一下今日学习应用uniapp中的vuex 提示:以下是本篇文章正文内容,下面案例可供参考 一、vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 按照自己理解来说就是公共数据管理模块。如果应用中数据量比较大的可以应用,不是很大的建议用缓存即可。 二、使用步骤 使用准备在项目中新建store目录,在该目录下新建index.js文件 1

qq_51741194的博客 8731

第三节: 串口通信(用CubeMX学习STM32)

用CubeMX学习STM32, 串口通信学习, 通过轮询方式和中断方式两种方式进行通信演示。 STM32F407zgt6

Kevin_8_Lee的博客 8904

【前端开发】Uniapp:状态管理Vuex

action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation,或者通过 context.state 和 context.getters 来获取 state 和 getters。这个选项更像是事件注册:“当触发一个类型为 add 的 mutation 时,调用此函数”,要唤醒一个 mutation handler,你需要以相应的 type 调用 store.commit 方法。

疏影横斜水清浅,暗香浮动月黄昏 5556

乐鑫WIFI芯片开发流程梳理-工具链、编译和下载

最近开始基于乐鑫ESP32的WIFI模组的软件开发,首先要做整套流程的梳理,乐鑫官网以及安信可上已经有了较为系统的资料,但是在实现过程中也遇到了一些问题,花了几天去解决,所以为了总结,也为了给其他人提供一些借鉴,把流程分享一下,官网上相对比较完善的,就不在赘述。 1. 开发方案选择 目前网上有两套较为成熟的方案: (1)基于乐鑫官网推荐的开发方式,原网页:https://docs.espress...

一名嵌入式软件工程师的自我成长 3927

s9keaz128 UART Bootloader 单片机篇(上)

网络上充斥着各种各样的串口升级方案,基本都是基于Y-Mode协议下载。采用这种升级方案学习还是可以,用在产品上还是有点欠缺。如下载完成后,需要把时间发送到设备就不好搞了。如下这个设备返回的信息,最后一项就是固件更新时间。固件名称: KEA128编译时间固件版本: 1.0.3硬件版本: 1.0.3产品序列号功能名称: App固件更新时间串口升级演示视频。

一人科技 1796

uniapp中使用vuex

uniapp中使用vuex 一、uniapp中有自带vuex插件,直接引用即可 二、在项目中新建文件夹store,在main.js中导入 在根目录下新建文件夹store,在此目录下新建index.js文件 index.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { //公共的变量,这里的变量不能随便修改,只能通过触发mutati

Smile_666666的博客 2万+

Java后端开发实战:手把手教你用e签宝API搞定电子合同签署(附完整代码)

本文详细解析了Java后端开发中如何通过e签宝API实现电子合同签署的全流程,包括环境配置、核心架构设计、Token管理、签署流程实现及回调处理等关键环节。通过完整的代码示例和最佳实践,帮助开发者高效集成电子签名服务,提升企业数字化转型效率。

weixin_42662293的博客 532

uni-app如何使用vuex(vue2—详)

二、mutations (更新数据,state中的数据只能使用mutations去改变数据—以上完————编写博客时意外点了撤回 差点功夫白费,幸好自带历史回退。一、state (管理组件数据,管理的数据是响应式的)——————————————————以上引入完成。——————————————————以下使用方法。this.$store.getters.属性名。this.$store.getters.属性名。,getters辅助函数也可调用——方法在四。this.$store.state.属性名。

a895544608的博客 4081

【电路设计】带阻滤波器实战:从理论到Twin-T陷波电路实现

本文详细介绍了带阻滤波器的原理与Twin-T陷波电路的实战应用,从基础概念到工程实现全面解析。通过具体案例展示如何设计高Q值滤波器,解决电源噪声等实际问题,并分享PCB布局和元件选型的实用技巧,助力工程师提升电路设计能力。

gg901的博客 1022

工业缺陷检测:基于深度学习的表面缺陷分类

工业缺陷检测:基于深度学习的表面缺陷分类 ,人工智能,计算机视觉,大模型,AI,在现代工业生产中,产品质量直接影响企业的竞争力和声誉,工业缺陷检测作为质量把控的重要环节,其技术的发展至关重要。传统的人工检测方式效率低、成本高且易受主观因素影响,难以满足大规模、高精度的生产需求。随着深度学习技术的蓬勃发展,基于深度学习的工业表面缺陷分类方法凭借强大的特征提取和模式识别能力,成为解决工业缺陷检测难题的有效途径。本文将深入探讨基于深度学习的工业表面缺陷分类技术,结合详细的代码示例和概念解析。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

uniapp vuex篇

uniapp内置了vuex,所以不需要额外安装vuex,可以直接导入,直接使用。 vuex在uniapp中如何导入? 第一步,在项目根目录下创建store文件夹,在store文件夹下创建文件index.js 第二步,在创建的index.js中导入vue,导入vuex,并创建store对象,导出store对象 import Vue from "vue" //引入vue import Vuex fro...

秋来九月八 9003

TensorFlow2深度学习实战(十四):目标检测算法 YOLOv4 解析

最易上手的【计算机视觉】小白教程!

不积跬步,无以至千里! 7636

uniapp的Vuex使用

uniapp的Vuex使用 一、在项目的根目录下新建一个store文件夹,然后在文件夹下新建一个index.js文件 二、在新建的index.js下引入vue和vuex,具体如下: //引入vue和vuex import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({//全局...

Zhouchangyue的博客 1313

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

<uniapp><vuex><状态管理>在uniapp中,如何使用vuex实现数据共享与传递?

本文介绍了如何在uniapp中使用Vuex进行状态管理,实现数据在页面与组件间的传递与共享。文章首先简要介绍了Vuex的核心概念及其与全局变量的区别,并列举了适合使用Vuex的场景。接着,通过一个简单示例展示了如何在uniapp项目中配置和使用Vuex,包括创建store实例、在main.js中引入store,并在页面中访问和修改状态。文章还提供了一个实际应用场景,展示了如何通过WebSocket实时更新数据,并使用Vuex的mutations来管理状态。最后,文章提到这些方法将应用于后续项目开发中,特别是

用沸腾的热血,支付我们的人生吧! 1401

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

uniapp集成vuex

本篇文章用最简单的方式讲解uniapp中vuex的使用。

Cloud的专栏 919

uniapp中Vuex数据持久化

解决H5应用中存在Vuex中的数据在刷新页面后丢失

Mr_Bobcp的博客 1万+

uniapp使用vuex

uniapp中vuex的使用方法包括一点点示例

TwoBE9876的博客 7194

uniapp中的Vuex

一:vuex。 1,Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 2,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 3,Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。 4,vuex官网。 二:例子。 1,在 uni...

weixin_46301474的博客 818

uniapp中引入VueX

uniapp中方内置 vuex,所以 不需要 npm下载,直接引用就行。

weixin_53156345的博客 2215

uniapp集成colorUI uView2.0 Vuex

文章目录说明新建uniapp项目集成colorUI集成uView(uniapp插件市场引入)集成Vuex另uView集中管理API 请求和响应拦截器也非常优秀 说明 由于经常要用到uniapp开发app所以每次都要重复搭建需要的模板,但是自己常用的框架就uView和colorUI。在我看来colorUi的css和布局写的不错,而uView又可以提供丰富的组件库。 资源下载地址 新建uniapp项目 集成colorUI 下载ColorUI-Uniapp 下载地址 复制ColorUI-Uniapp

sunbyte带你学 1720

Uniapp在vue3下使用vuex

Uniapp在vue3下使用vuex 前言 这里不介绍uniapp和vue3,只针对想要使用vuex,但目前因为使用的是uniapp和vue3,不知如何使用vuex滴同学。这篇文章也是我的开发笔记。 认识VUEX Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。简而言之就是用来存数据,可以有效减少使用组件传参困扰的头痛。 基本元素:store(里面存数据),mutation(里面修改数据),action(里面异步调用mutation来修改数据),getter(获取数据) 引用VUEX un

Marlene_Jiang的博客 1万+

uniapp配置vuex

4. 将 cart.js 文件导入 store.js 文件挂载到 modules 内。注意:uniapp 配置 vuex 不需要 npm下载,内置的有,直接引用就行。5. 测试,随便找个页面 导入 vuex看看对不对。6. 页面使用,能看到的话就说明没问题了。

weixin_72503508的博客 765

在uniapp中使用vuex-已经被内置了

uni-app已经内置了vuex,所以只要正确引入就好了。 1、在项目的根目录下,创建一个名为store的文件夹然后在该文件夹下创建一个index.js的js文件 2、在该js文件下定义公共的数据以及方法函数,并且把它导出 import Vue from 'vue' import vuex from "vuex" Vue.use(vuex) export default new vuex.Store({ state:{ num:0 }, mutations:{ add(state){

codingWeb的博客 2131
上一篇: uniapp-简单banner实现
下一篇: 2021-06-09
Shiki2147
博客等级 码龄9年 30粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值