【自用笔记】关于store存储

RSICV——存储器访存指令load/store 1. load/store 存储器访问指令 该指令是RISCV架构专门用来访问存储器的指令,其他任何指令均无法访问存储器。一般load采用I型指令格式,store采用S型指令格式。有效字节地址是通过将寄存器rs1与符号扩展的12位偏移量相加而获得的。Load指令将存储器中的一个值复制到寄存器rd中。 Store指令将寄存器rs2中的值复制到存储器中。load/store指令是让寄存器和存储器进行数据交换,虽然不存在运算,但是都会经过完整的数据通路。 举例说明指令执行过程: 例如sw rs2, imm(r 阅读详情

const mutations = {

  "SET_id_CARD": (state, payload) => {
    console.log(payload,'=> 身份证正面payload')
    state.idCard = payload.idCard;
  },

}
export default mutations

背景:

混合开发APP,使用了第三方SDK中暴露的方法,在业务中有上传图片和OCR识别的需求,所以需要用到暴露的方法调用相机或者相册,然后再通过返回的ID获取图片URL,并进行对应的OCR识别;

在这里,为了方便,所以使用了vuex中的store存储,具体原理就不讲了,直接进行步骤

首先需要创建store文件夹,如果没有vuex,需要根据自己的版本先安装:

Vue2项目安装:
npm install vuex@3    
 
Vue3项目安装:
npm install vuex@4

我是先创建了modules块后发现自己不需要用到模块化,所以如果你的业务需求也比较简单,可以不要modules,直接创建modules以下的文件就可以了。

actions.js:

// 身份证正面
const setIdCard= ({ commit }, payload) => {
  commit('SET_id_CARD', payload);
};

export default {
  setIdCard
}

getters.js:

const getters = {
  idCard: state => state.idCard
}

export default getters

index.js

import Vue from 'vue'
import Vuex from 'vuex'
import user from './modules/user'
import mutations from './mutations'
import state from './state'
import actions from './actions'
import getters from './getters'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    user
  },
  getters,
  state,
  actions,
  mutations
})

export default store

mutations.js


const mutations = {

  "SET_id_CARD": (state, payload) => {
    state.idCard = payload.idCard;
  }

}
export default mutations

status.js

//在这里因为我是直接使用van-uploader组件,为了方便直接使用了数组的形式
const state = {
  idCard: [],              //身份证正面
}
export default state

在所需要的组件中:



<template>
 <van-uploader v-model="$store.state.idCard" :max-count="1" multiple :after-read="(file) => afterRead(file,'0')"
      @delete="(file) => beforeDelete(file,'0')" class="uploaderBox"
      @click-upload="addImage('idCard')"
  >
    //这里使用@click-upload事件是因为,在移动端afterread是没有用的,无法唤起相机或者相册(之前试过Input标签也无法调起,所以只能使用第三方暴露的方法调起手机设备)
      <div class="infoUp">点击上传</div>
      <div>身份证正面</div>
  </van-uploader>

</template>
<script>
  import {mapGetters, mapMutations} from "vuex";
   data(){
     return {
       idCardPics: '', //因为提交的时候是以字符串的形式,所以还需声明一个字段来承接store中的URL
     }
   }
   computed: {
      // 接收数据(这里的'currentType'和'uploadIds'是我的业务中需要区分标识的字段,所以我在代码中就不加了,demo主要是为了给大家做参考用的)
      ...mapGetters(['currentType','uploadIds','idCard']),
       //这步是为了进行OCR的,配合watch进行监控url的变化,
      "getPics"() {
        let orcUrl = '';
        if(this.$store.state.currentType) {
          switch (this.$store.state.currentType) {
            case "idCard":
              orcUrl = this.$store.state.idCard.length ? this.$store.state.idCard[0].url : '';
              this.idCardPics = orcUrl;
              break;
            }
         }
         return orcUrl
       }

    watch:{
      getPics(newValue,oldValue) {
        if(newValue) {
          let data = {};
          data.url = newValue; //如果有变化,那就赋值
          if(this.$store.state.currentType) {
            switch (this.$store.state.currentType) {
              case "idCard":
                data.side = 'front';
                this.OCRidCard(data,'front')  //这里是我处理OCR的事件,大家可以更换其他的事件
                break;
            }
          }
        }
      }
    },
    methods: {
      // 修改数据
      ...mapMutations(['SET_CURRENT_TYPE','SET_UPLOAD_IDS','SET_id_CARD']),
      //OCR识别
        OCRidCard(data){

        }
      //删除图片
       beforeDelete(file,index) {
            switch (index) {
              case '0':
                this.SET_id_CARD({
                  idCard: []
                })
                this.idCardPics = '';
                break;
            }
      }

    }
    //因为其他地方也可能用到,所以在组件销毁时,我会把store值初始化
    destroyed() {
      this.SET_CURRENT_TYPE({
        currentType: ''
      });
      this.SET_UPLOAD_IDS({
        uploadIds: ''
      });
      this.SET_id_CARD({
        idCard: []
      });
    }

</script>

注意:刚开始我想省劲,声明一个字段,给好多场景使用,但是最后发现还是这样最好使,你只需要注意声明的字段不要和组件data中的字段一样就可以了。就类似这样的样子(样式我就不传了,根据自己的业务风格去调整就行)

虽然还是有一些不太懂的地方,但是简单的业务基本上都实现了,而且也进行了测试没有问题(因为我的比较奇葩,需要在main.js里访问接口获取图片,所以那些你们用不到的地方我就不展示了)

ElectronVue系列 -- 5.使用electron-store存储信息到本地磁盘 由于需要持久化存储一些信息到磁盘上,信息比较简单,无需过多设计。经过搜索发现electron-store比较好用 1. 引入插件 Electron-Store https://github.com/sindresorhus/electron-store $ npm install electron-store 2. 修改配置 修改文件vue.config.js文件进行配置 module.exports={ pluginOptions: { electronBuilder: { 阅读详情

相关推荐

Bigtable不是column store(列存储) !

<br />题外话,今天无意中查看以前写的blog,发现好多blog的呈现只有一堆乱码,正文不见了。可是点击编辑正文又出现了... 我这算是给优快云报bug了。<br /> <br />最近看了好些文章,将bigtable/hbase等归入column store(列存储)。甚至,将column store做为了NOSQL的一部分。这样的观点是不对的。<br /><br /> 首先需要解释一下什么是column store。举个简单例子(现摘自wiki,我是懒人...):<br /><br />这是da

智障大师 的专栏 9101

vue3 store 存储使用

vue3 store 存储使用方法

weixin_45691697的博客 1482

SAP CPI - Data Store 数据存储

SAP - CPI - Data Store

m0_74015269的博客 977

前端学习笔记(15)-Vue3状态管理store及Vuex的使用

1. 状态管理 2.用响应式API做简单状态管理 3.Vuex基础 4.Vuex 核心概念(state getter mutation action module)5.Vuex+sessionStorage实现数据存储

JiangZhengyang7的博客 1万+

Driver Store Explorer通俗解释:驱动存储优化原理

深入解析Driver Store Explorer的工作机制,揭示如何通过清理冗余驱动提升系统性能,掌握driver store explorer的实际应用技巧。

weixin_26854475的博客 749

(P2)PALM软件的基本使用流程

上一篇介绍了PALM在Ubuntu系统上的下载安装及安装后的目录文件结构,这一篇以自带的案例介绍软件的基本操作流程。(请转至example_cbl项目) 输入 声明:官网均有各个变量的说明,以下代码来自软件自带案例 palm的最小输入文件是p3d文件,以下是example_cbl_p3d的详细说明。(文件语言格式Fortran,请自行先学习下语言的基本语法。笔者也是新学者,有非常多的问题,很多参数也不能准确的说出是什么意思,还请不吝赐教,谢谢!!!) !几点说明 !1、该运行文件基本由三大块组成:1)in

ysqzhatian的博客 3260

在Vue 3中使用Pinia来管理用户的登录状态和个人信息

创建UserStore:在你的项目中创建一个名为UserStore.js的文件,并在其中定义UserStore。在组件中使用UserStore:在需要使用UserStore的组件中,可以通过引入UserStore来访问和更新用户状态。

qq_39559488的博客 3906

机器人强化学习入门学习笔记

如果你追求高精度动力学仿真、用于强化学习或机器人研究,MuJoCo 是一个非常优秀的选择。如果需要快速实验、使用真实机器人模型,PyBullet 或 Gazebo可能更合适;如果你追求大规模并行训练,Isaac Gym 或 BraX会更高效。legged gym底层是​编辑isaacgym,基于gpu训练可以多环境并行训练,收敛到一个稳定行走的策略快。本视频MuJoCo基于cpu训练很慢。

xiaomu_347的博客 1486

vuex中的store存储数据

在 src 目录下新建 store 文件夹,在 store 文件夹内新建一个deviceProps.js文件。使用commit()可将deviceProps数据传递给addData。在vue项目main.js中挂载。4、页面中提交数据给state。3、在组件中获取state。

weixin_43844730的博客 1345

保姆级教程:用Python+OpenCV实现相移法与格雷码三维重建(从生成条纹到点云生成)

本文详细介绍了使用Python和OpenCV实现相移法与格雷码三维重建的全流程,从条纹生成到点云计算。通过结构光技术,结合相移法和格雷码,实现高精度的三维重建,适用于无纹理物体表面的密集对应点生成。教程包含环境搭建、条纹生成、相位计算、三维点云重建及常见问题排查,适合计算机视觉开发者和研究人员。

weixin_33443333的博客 351

【Solidworks学习使用(1)__2022版本保姆级安装方法】

Solidworks 2020安装

coder-kimbell的博客 6269

VUE3怎么往VUEX(store/index.js)里面存储数据(自用笔记)

VUE3如何调用VUEX数据

C134609的博客 2692

【AUTOSAR-DEM】-2.1-APP SWC设置UDS/OBD DTC检出和恢复

点击返回「《Autosar_BSW高阶配置》总目录」 案例背景(共6页精讲): DEM模块提供两种不同类型的Event: • BSW-related events:DEM_EVENT_KIND_BSW(通过C-API报告 - Dem_SetEventStatus) • SW-C-related events:DEM_EVENT_KIND_SWC(通过RTE operation - SetEventStatus) 下面我们讲讲在APP SWC中设置BusOff(总线关闭) DTC故障成立/恢复(其它

「汽车电子助手」的博客 3945

存储类Store操作

function deepCloneStore (source) { var target = Ext.create ('Ext.data.Store', { model: source.model }); Ext.each (source.getRange (), function (record) { var newRecordData =

婵blog--分享与交流 1023

CANape a2l文件的编辑教程

编辑a2l文件

wsq119的博客 1万+

YOLO26 网络结构逐模块解析:Backbone/Neck/Head

本文解析了YOLO26目标检测网络的架构设计,重点介绍其在Backbone、Neck和Head三个核心组件的创新优化。Backbone采用改进的CSP模块与轻量级注意力机制,提升特征提取效率;Neck使用改进的BiFPN结构实现高效多尺度特征融合;Head采用完全解耦设计简化回归流程。文章详细分析了各模块的技术演进、实现细节和设计思想,通过流程图和代码示例展示了YOLO26的整体架构和关键组件实现。该研究对模型优化、定制开发和硬件部署具有重要指导意义。

一键难忘的博客 1250

electron数据存储 electron-store

npm安装: npm install electron-store yarn安装: yarn add electron-store 使用方法: const Store = require('electron-store'); const store = new Store(); //如果需要加密存储 就用下面的 //const store = new Store({encryption...

舜岳的博客 1万+

AUTOSAR进阶图解==>AUTOSAR_SWS_BSWGeneral

本文详细解析AUTOSAR基础软件(BSW)模块的通用规范,涵盖其分层架构、配置管理、初始化流程和状态转换机制。AUTOSAR采用清晰的分层设计,包括应用层、服务层、ECU抽象层和微控制器抽象层,各层模块通过标准化接口交互。BSW模块配置采用类型化定义,支持预初始化、初始化和后期构建配置。文档还阐述了模块初始化流程中的依赖管理,以及运行时的状态转换与错误处理机制,为汽车电子控制单元的标准化开发提供规范指导。

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 1129

vue——store全局存储

业务场景:刷新页面时,首次拉取所有配置,存储到store状态管理用于全局调用; import Vue from 'vue' import Vuex from 'vuex' import userInfo from './modules/user' Vue.use(Vuex) export default new Vuex.Store({ modules: { u...

weixin_30924239的博客 5476

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

pnpm Store 深度解析:内容寻址存储、虚拟存储与磁盘优化实践

本文聚焦 pnpm 最核心的存储机制——**内容寻址存储(Content-Addressable Store)**,它让 pnpm 在磁盘占用与安装速度上远优于传统包管理器:每个包只下载一次、以内容哈希去重、通过硬链接/符号链接在项目间共享。你将掌握 store 的完整工作原理与目录布局、`pnpm store` 系列命令、`pnpm-workspace.yaml` 中的存储相关配置(`store

gitblog_00313的博客 403

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

列存储数据库C-Store介绍

C-Store是一个为了快速查询而设计的关系型数据库,它的论文发表于2005年的VLDB。 为了达到更快的查询性能,C-Store按列存储数据,同一个表中的不同列可能被存在不同的、可能有重叠的Projection中。 虽然C-Store没有提出什么新的技术,但它是第一次将与列存储相关的技术整合到一起,成为一个真正理论上可用的系统,所以其设计和系统架构仍被广泛借鉴。

Hansen先生的博客 6505

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

列式存储系列(一)C-Store

列式存储系列(一)C-Store 序 本文是列式存储系列的第一篇。在这个系列中,我们将介绍几个典型的列式存储系统。这些列式系统的出现都有各自的时代背景。在介绍这些系统的同时,我们也尽量介绍一下它们的背景,以便大家有一个更宏观的认识,理解这个系统为什么会出现,它要解决的问题,以及它如何影响后来类似系统的发展。 列式存储不是一个新概念,它最早可以追溯到上个世...

测试0901-1 2257

【 Vue 】 Store 存储之 dispatch && commit

Store 存储之 dispatch && commit 一、存在即合理 1. Store   当我们在使用 vue 时,同一个数据可能需要被多处复用,你可以选择创建一个公共 data ,数据有了,但是,调试将会变为噩梦。任何时间,我们应用中的任何部分,在任何数据改变后,都不会留下变更过的记录。为了解决这种问题,Store 由此诞生,我们会将这个公共 data 放进 Store 中用于同一管理。(下面创建一个简答 store) // 一个简单的 store var store =

镜花水月 1万+

Nix store-v1 JSON 协议解析:Nix 存储的实验性 JSON 序列化格式与 dummy-store 实现

> 本文基于 Nix 官方手册文档 [doc/manual/source/protocols/json/store.md](https://link.gitcode.com/i/df31bf0dc09ace368d014fb6ee72c8a2) 及其引用的 JSON Schema 与示例文件,深入解析 Nix 存储(Store)的 `store-v1` 实验性 JSON 表示:包括顶层四个必填字段

gitblog_01178的博客 736

electron-store存储数据

存储数据我并没有采用数据库方案,仅仅存储数量不多的简单数据也不至于动用数据库。这里选择的是electron-store作为主要存储工具,这个工具即使不作为主要存储工具仅存储用户启动项也是极好的。 安装electron-store,如果使用npm安装不成功则使用cnpm安装,总有一款适合你。 使用方法: const Store = require('electron-store'); const store = new Store(); //如果需要加密存储 就用下面的 //const store = n

李剑一 2844

基于S3存储的笔记应用Notea

Notea 是存储在 S3 上的自托管笔记应用程序,不需要数据库。

wbsu2004的博客 8771
上一篇: 【自用转载】vue混合开发悬浮球
下一篇: 【自用笔记】webSocket 心跳机制、断线重连
林希雨
博客等级 码龄4年 84粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值