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

uniapp-商城-65-shop(1-品牌信息显示,将数据库信息同步到vuex的state)

         通过后台将我们的品牌加到了数据库里面,同样也需要将该信息显示到界面上来。无非就界面读取后台数据库的信息,但是需要做到实时显示。

        我们这里通过vuex 的状态显示,将后台的数据读取到前台显示。

        本文介绍了如何通过Vuex实现后台品牌数据实时显示到前端界面。首先,在Vuex的store文件夹中创建brand.js文件,定义state、mutations和actions,用于管理品牌数据。通过actions异步获取后台数据,并通过mutations同步更新state。接着,在getters.js中暴露brandData接口,便于页面使用。最后,在shop-headbar组件中,通过mapGetters导入brandData,并替换界面中的固定内容,实现品牌信息的动态显示。整个过程确保了数据的实时更新和界面的动态渲染。

1、vuex的基本文件

前面已经讲过了

store文件夹---->modules文件夹(包含基本的js文件  car,brand,system等js文件)

store文件夹---->getters.js文件  暴露数据接口(接口主要是计算store中的 state)

store文件夹---->index.js文件(导出 vuex的状态结果,便于应用,包含 store中的js文件,包含getter.js)

1.1、创建brand的js文件

1.1.1 brand中的代码解析

const brandCloudObj = uniCloud.importObject("green-mall-brand")
//导入云对象,和在页面逻辑中是一样的//定义brand ,包含state状态 ,mutations同步操作,actions异步操作
// https://blog.csdn.net/weixin_43529465/article/details/129806460  分析
const brand = {state: {brandData: {noBrandData: false}},mutations: {// 作用:操作Vuex中的state属性数据。// mutations属性与getters 属性和 state属性平级,可以修改state中的数据。SET_BRAND(state, value) {state.brandData = value}},actions: {// 作用:修改state数据,异步修改。// 区别:actions是异步修改state中数据,mutations是同步修改state中数据。// 原理:actions中的方法并不能直接修操作state中的数据,需要触发mutations中的方法,最终还需要通过mutations中的方法修改数据async getBrandData(context) {let res = await brandCloudObj.get();if (!res.data.length) {context.commit("SET_BRAND", {noBrandData: true})return;};context.commit("SET_BRAND", res.data[0])}}
}export default brand

1.2、getter的代码文件

作用:类似于过滤器,数据输出之前可以操作数据。
getters 属性和 state属性平级,可以过滤state中的数据。

brandData: state => state.brand.brandData, //暴露接口,主要是通过这里做一些计算,然后暴露出去,当然这里没有做计算

1.3、index文件


import Vue from "vue"
import Vuex from "vuex"
Vue.use(Vuex)   //再vue安装vueximport  system from "@/store/modules/system.js"
import  cars from "@/store/modules/cars.js"
//上面三个必须写 ,创建getters.js  并导入     但是getters.js 中是暴露 modules 中js 的state   便于页面使用
import getters from "./getters"   //导入getter   然后再去使用的页面vue 导入getters   	import {mapState,mapMutations,mapGetters} from "vuex"
import  brand from "@/store/modules/brand.js"const store = new Vuex.Store({getters,   //实例化 getters  不然vue页面用不了modules:{system,cars,brand},
})export default store;  

1.3.1 使用注意:

// 创建好该文件要再main.js中配置
/*
//start   这样就可以对该store进行全局挂载 所有页面使用
import store from '@/store'
//这样就可以对该store进行全局挂载 所有页面使用
Vue.prototype.$store=store
//end   这样就可以对该store进行全局挂载 所有页面使用
--------------
然后再使用页面导入:
import {mapState,mapMutations,mapGetters} from "vuex"//导入vuex
-----------------再进行计算*//*computed:{//这里两个方法都可以获取到数据,前面太麻烦就封装了一个getters//后一个通过getters 获取的// 第一种 没有使用 getters ...mapState({vuexHeight:state=>state.system.vuexHeight  //这样就能获取到该值  但是太麻烦  所以我们要改用 getters来获取  在store中准备getters.JS文件}),//第二种 有使用 getters ...mapGetters(["vuexHeight"])},*/

2、shop中页面处理

shop页面中,使用的是shop-headbar组件来处理头部的。

2.1 shop-headbar组件

这个组件在前面的页面中已经说过了

2.1.1  第一步:导入mapState,mapGetters,mapMutations,mapActions

import {mapState,mapGetters,mapMutations,mapActions} from "vuex"   //通过这里 才能使用mapGetters 中的 brandData

2.1.2  第二步:导入 getters中的branddata

        computed: {    ...mapGetters(["StatusBarHeight","TitleBarHeight","bodyBarHeight","totalHeight","foldState","brandData"])
            //将getters 中  需要使用的值导过来  
        },

2.1.3  第三步:使用数据库的名称替换以前固定写的名字

2.1.4 第四步:修改头像

2.1.5 第五步:修改描述

2.1.6 第六步:修改头部背景图片

http://www.xdnf.cn/news/583939.html

相关文章:

  • 如何构建一个简单的AI Agent(极简指南)
  • 深度学习入门到实战:用PyTorch打通数学、张量与模型训练全链路​
  • 使用 A2A Python SDK 实现 CurrencyAgent
  • 开闭原则 (Open/Closed Principle, OCP)
  • leetcode hot100刷题日记——10.螺旋矩阵
  • day33 python深度学习入门
  • jmeter登录接口生成一批token并写入csv文件
  • 浪潮Inspur服务器产品线概述
  • 【paddle】常见的数学运算
  • Ubuntu 22.04上升级npm版本
  • 升级node@22后运行npm install报错 distutils not found
  • canvas(三)-动画3d
  • iisARR负均衡
  • 【IDEA问题】springboot本地启动应用报错:程序包不存在;找不到符号
  • 在react项目中使用andt日期组件,选择周和季度,直接获取所对应的日期区间
  • C++ HTTP框架推荐
  • 人脸识别备案开启安全防护模式!紧跟《办法》!
  • uni-app学习笔记九-vue3 v-for指令
  • redis Pub/Sub 简介 -16 (PUBLISH、SUBSCRIBE、PSUBSCRIBE)
  • 【C++20新特性】ranges::sort()使用方法,优势,注意点
  • 【1004. 最大连续1的个数 III】
  • ai之pdf解析工具 PPStructure 还是PaddleOCR
  • 火山引擎火山云带宽价格
  • 【工作流】Fastgpt配置豆包模型-火山引擎
  • Github 2025-05-22Go开源项目日报 Top10
  • 【COMPUTEX 2025观察】NVIDIA开放NVLink:一场重构AI算力版图的“阳谋“
  • Go File多终端数据同步技术全解:跨设备数据管理实战指南与复杂场景处理过程
  • PostgreSQL14 +patroni+etcd+haproxy+keepalived 集群部署指南
  • C#在 .NET 9.0 中启用二进制序列化:配置、风险与替代方案
  • 模型剪枝的定义与核心作用