位置: IT常识 - 正文

解决在vue3中使用reactive响应式,赋值后造成页面不改变的问题?(vue3 $bus)

编辑:rootadmin
解决在vue3中使用reactive响应式,赋值后造成页面不改变的问题? 文章目录场景原因一、例子二、解决方法1、使用ref存储响应式数据2、在reactive中使用对象包裹要改变的数据3、for of循环push到reactive数据中,不破坏数据结构总结场景原因

推荐整理分享解决在vue3中使用reactive响应式,赋值后造成页面不改变的问题?(vue3 $bus),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3技巧,vue3 onmounted,vue3解决了什么问题,在使用vue碰到的坑,vue3解决了什么问题,在使用vue碰到的坑,vue3解决了什么问题,在使用vue碰到的坑,内容如对您有帮助,希望把文章链接给更多的朋友!

我们需要在vue3中使用服务器的数据渲染到页面上,我使用的是reactive生成的响应式数据属性,但是在挂载后请求的数据并没有渲染显示到页面上。

技术:vue3 、 element-ui-plus

一、例子

home.vue

<template> <div class="common-layout"> <el-menu @select="changeMenu" :collapse="isCollapse" active-text-color="#409eff" background-color="#333744" class="el-menu-vertical-demo" default-active="2" text-color="#fff" :unique-opened="true"> <el-sub-menu :index="item.path" v-for="(item) in parmar.menus" :key="item.id"> <template #title> <el-icon> <List /> </el-icon> <span>{{ item.authName }}</span> </template> <el-menu-item :index="item2.path" v-for="(item2) in item.children" :key="item2.id"> <el-icon> <Menu /> </el-icon> {{ item2.authName }} </el-menu-item> </el-sub-menu> </el-menu> </div></template><script setup>// 引入模块import { reactive, onMounted } from 'vue'import { useRouter } from 'vue-router'import http from '@/utils/request'const router = useRouter();let menusList = reactive([]);onMounted(() => { getData()})const getData = async () => { let { data } = await http.get('/menus'); // 这里直接赋值,会导致menusList失去响应式了 menusList = data.data; console.log(menusList);}const changeMenu = (key) => { router.push('/home/' + key)}</script><style lang="less" scoped>.common-layout { height: 100vh; box-sizing: border-box; position: relative; overflow: hidden; /deep/.el-menu--vertical { margin: 0; border-right: none !important; overflow-x: hidden; height: calc(100vh - 100px); user-select: none; } .el-menu-vertical-demo:not(.el-menu--collapse) { width: 200px; min-height: 400px; }}</style>解决在vue3中使用reactive响应式,赋值后造成页面不改变的问题?(vue3 $bus)

我们通过直接赋值,可以看出数据变为普通的数据了,并不是响应式的。

二、解决方法1、使用ref存储响应式数据

代码如下:

<script setup>// 引入模块import { ref, reactive, onMounted } from 'vue'import http from '@/utils/request'let menusList = ref([]);onMounted(() => { getData()})const getData = async () => { let { data } = await http.get('/menus'); // 这里直接赋值value,在页面上直接使用menusList即可! menusList.value = data.data;}</script>

可以看出打印出的数据是经过ref劫持的数据,是响应式的。

2、在reactive中使用对象包裹要改变的数据

代码如下:

<script setup>// 引入模块import { reactive, onMounted } from 'vue'import http from '@/utils/request'let parmar = reactive({ menus: [ ]});onMounted(() => { getData()})const getData = async () => { let { data } = await http.get('/menus'); // 这里直接赋值对象里面的数据,就不会造成把响应式替换掉的情况了,直接在页面上通过parmar.menus使用数据! parmar.menus = data.data; console.log( parmar);}</script>

使用这种方式,数据也是响应式的。

3、for of循环push到reactive数据中,不破坏数据结构

代码如下:

<script setup>// 引入模块import { reactive, onMounted } from 'vue'import http from '@/utils/request'let menusList = reactive([])onMounted(() => { getData()})const getData = async () => { let { data } = await http.get('/menus'); for (let i of data.data){ menusList.push(i); } console.log(menusList);}</script>

总结

主要的问题就是使用reactive生成的响应式数据,在直接赋值时把响应式数据给替换为了普通数据了,导致无法监听数据的变化。

本文链接地址:https://www.jiuchutong.com/zhishi/300223.html 转载请保留说明!

上一篇:Vue 国际化之 vue-i18n 的使用(vue国际化占位符)

下一篇:PyTorch学习系列教程:何为Tensor?(pytorch如何学)

  • 微信图片怎么合并成聊天记录(微信图片怎么合并一起发出)

    微信图片怎么合并成聊天记录(微信图片怎么合并一起发出)

  • 佳能打印机墨盒在哪里(佳能打印机墨盒怎么安装)

    佳能打印机墨盒在哪里(佳能打印机墨盒怎么安装)

  • 华为手机轨迹记录在哪(华为手机轨迹记录软件)

    华为手机轨迹记录在哪(华为手机轨迹记录软件)

  • 淘宝取消寄件还可以再申请吗(淘宝取消寄件还能再重新上门取件吗)

    淘宝取消寄件还可以再申请吗(淘宝取消寄件还能再重新上门取件吗)

  • radeonsettingshostapplication已停止工作

    radeonsettingshostapplication已停止工作

  • qq好友拉群自动同意怎么关闭(qq拉群自动同意怎么办)

    qq好友拉群自动同意怎么关闭(qq拉群自动同意怎么办)

  • 抖音什么时候发容易上热门(抖音什么时候发作品流量最多)

    抖音什么时候发容易上热门(抖音什么时候发作品流量最多)

  • 苹果电池多久掉百分之一(苹果电池多久掉到80%)

    苹果电池多久掉百分之一(苹果电池多久掉到80%)

  • 取消拉黑后能收到之前的短信吗(取消拉黑后能收到之前的微信吗)

    取消拉黑后能收到之前的短信吗(取消拉黑后能收到之前的微信吗)

  • 手机背光坏了要换屏吗(手机背光坏了要换吗)

    手机背光坏了要换屏吗(手机背光坏了要换吗)

  • 高通和骁龙的区别(高通与骁龙的区别)

    高通和骁龙的区别(高通与骁龙的区别)

  • 被对方拉黑了手机号码信息还可以发出去吗(被对方拉黑了手机号还能收到短信和彩信不呢)

    被对方拉黑了手机号码信息还可以发出去吗(被对方拉黑了手机号还能收到短信和彩信不呢)

  • mate30pro有什么颜色(mate30pro都有啥颜色)

    mate30pro有什么颜色(mate30pro都有啥颜色)

  • 微信绑定别人手机号有影响吗(微信绑定别人手机号)

    微信绑定别人手机号有影响吗(微信绑定别人手机号)

  • 不等于在c语言中怎么打(c语言中不等于)

    不等于在c语言中怎么打(c语言中不等于)

  • 手机怎么开通qq黄钻(手机怎么开通QQ蓝钻)

    手机怎么开通qq黄钻(手机怎么开通QQ蓝钻)

  • 苹果手机隐藏相册在哪(苹果手机隐藏相册会上传到icloud吗)

    苹果手机隐藏相册在哪(苹果手机隐藏相册会上传到icloud吗)

  • 抖音怎么拉长腿(苹果手机抖音怎么拉长腿)

    抖音怎么拉长腿(苹果手机抖音怎么拉长腿)

  • 音频设备怎么安装(音频安装)

    音频设备怎么安装(音频安装)

  • 快手怎么和别人同框视频(快手怎么和别人聊天发信息)

    快手怎么和别人同框视频(快手怎么和别人聊天发信息)

  • 双4g有什么用(双4g有用吗)

    双4g有什么用(双4g有用吗)

  • 显示器超频75hz的危害(显示器超频75hz容易坏吗)

    显示器超频75hz的危害(显示器超频75hz容易坏吗)

  • qq消息提示音怎么设置(qq消息提示音怎么恢复默认)

    qq消息提示音怎么设置(qq消息提示音怎么恢复默认)

  • get请求和post请求的区别(全面讲解)(get请求与post)

    get请求和post请求的区别(全面讲解)(get请求与post)

  • CBAM——即插即用的注意力模块(附代码)(即插即用是什么意思?)

    CBAM——即插即用的注意力模块(附代码)(即插即用是什么意思?)

  • 工资表怎么导入个税系统计算个税
  • 年度企业所得税会计分录怎么做
  • 契税减免税特殊规定有哪些?
  • 回购股票为什么股价下跌
  • 金税四期记账报税流程
  • 公司清算存货怎么算
  • 季度的工会经费计税依据
  • 生产成本月末转到哪里
  • 开发票产品名称
  • 跨区经营如何预缴税款
  • 企业的房屋是否能确认为存货?为什么?(简单描述即可)
  • 材料成本差异月初贷方余额表示什么
  • 拆装厂房
  • 不动产进项税额分两年抵扣
  • 定额发票用来干嘛
  • 收到投资分红要缴纳企业所得税吗?
  • 金税盘开票怎么改成含税金额
  • 支票作废了需要什么材料
  • 2019年核定征收税率表
  • 专项应付款转资本公积需要什么附件
  • 当月增加的固定资产
  • 高新技术企业人员工资占比
  • 双网卡冲突会发生什么现象
  • 电脑中毒后如何不装系统清理掉
  • win10怎么推送win11
  • win10系统安装详细步骤
  • 个税非居民是什么意思
  • php生成zip压缩包
  • 上年度成本费用包括哪些
  • php中file
  • 购买增值税税控系统专用设备账务处理
  • 开发商卖房子要交多少营业税
  • 转销股票会计分录
  • uniapp 打开小程序
  • 幼儿园会计需要什么条件
  • 一般纳税人开出13%的普通发票怎么扣税
  • 前端axios是什么
  • gridview datakeynames
  • 建安企业账务处理 工程施工
  • php一个文件搞定两个文件
  • css网页布局代码
  • php实现页面静态化
  • 服务业销售收入
  • ps快速选择工具抠图
  • 信用减值损失科目借贷方向
  • vue注册用户名和密码
  • 借贷公司借钱给别的公司需要开什么会
  • mongodb 查询条件
  • 个人所得税数据怎么导入新电脑
  • 其他债权投资的汇兑差额计入什么科目
  • 个体户与公司的差别
  • 增值税报表申报流程
  • 减免税需要纳税申报吗
  • 还借款收据怎么写
  • 融资租赁租金利息怎么算
  • 建筑行业的收入做什么科目
  • 净现金流量算残值么
  • 应收账款已收回95元
  • 施工企业的具体工作有哪些
  • 金税卡就是税控盘吗
  • 属于费用类的会计科目有哪些
  • 新成立公司怎么办理社保开户
  • win8怎么没有我的电脑
  • ubuntu中运行c程序
  • linux中使用fdisk命令进行硬盘分区
  • windows media player播放不了mp4
  • 不能在windows7里进行设置的网络位置是
  • linux urb
  • ip冲突不能上网怎么解决
  • 如何把windowsxp换成windows7
  • jquery 图片
  • 常用标准化布局标签有哪些?
  • js比较数值
  • Android 仿 iphone 自定义滚动选择器
  • js类继承的几种方式
  • 公允价值变动损益属于什么科目
  • 税务局发票邮寄需要多久
  • 浦东经济开发区官网
  • 税务机关代收工会经费手续费
  • 租房完税证明需要房东交钱吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设