vue3.0中reactive的正确使用姿势
场景
在项目开发的时候,前端肯定是先写静态页面
在静态页面写好之后
然后就可以与后端对接数据了【高兴】
但是在对接接口的时候
我们会发现后端返回来的字段与前端在页面上写的可能不一致
这个时候有意思的事情就发生了
这种情况数据是不会跟新的
<div>
{{ objData }}
<button @click="submitHander">改变数据</button>
</div>
<script>
import { reactive } from 'vue'
export default {
setup () {
let objData=reactive({
name:'林漾',
age:31,
sex:'女'
})
//这样的方式跟新失败
function submitHander(){
objData={
name:'林漾1',
age:31,
sex:'女nv'
}
}
return {
objData,
submitHander
}
}
}
</script>

发生的现象
想必各位都发现, 点击按钮的时候,
数据始终没有发生改变
为什么数据没有发生改变了?
因为我点击的时候是这样操作的
objData={
name:'林漾1',
age:31,
sex:'女nv'
}
我是重新赋值的。如果你赋值是整个对象,vue3.0是无法跟新的
如何要跟新怎么处理
这样可以跟新
<template>
<div>
{{ objData }}
<button @click="submitHander">改变数据</button>
</div>
</template>
<script>
import { reactive } from 'vue'
export default {
setup () {
let objData=reactive({
name:'林漾',
age:31,
sex:'女'
})
function submitHander(){
objData.name='林漾1';
objData.name='31';
objData.name='女nv';
}
return {
objData,
submitHander
}
}
}
</script>
上面跟新遇见的问题
如何有很多值。如果需要我去跟新,
那岂不是我要一个一个的去参与赋值,
这样的话岂不是要把我累死???【妈呀!接受不了】
也有办法去解决:如何处理呢??
其实上面reactive的是使用方式都错了。真的错了,我骗你
reactive 如何正确去跟新
<template>
<div>
{{ objData.arr }}
<button @click="submitHander">改变数据</button>
</div>
</template>
<script>
import { reactive } from 'vue'
export default {
setup () {
let objData=reactive({
// reactive下面应该放置一个属性值
arr:[
{
name:'林漾',
age:31,
sex:'女'
}
]
});
function submitHander(){
objData.arr=[
{ name:'余声声',
age:29,
sex:'女'
}
]
}
return {
objData,
submitHander
}
}
}
</script>

reactive 正确使用姿势
reactive函数传递的参数必须是对象(json/arr)
千万不要这样写
let objData=reactive({ name:'林漾', age:31, sex:'女' })
这样写是非常的不好的。
有的小伙伴可能会说:
上面reactive函数传递的参数是对象呀
有什么问题了???
问题是在我们跟新数据的时候一点都不友好
还有就是我们在实际开发过程中可能有好几处都是响应式的数据
这个时候我们只需要创建一个reactive
就说按照下面这样来处理
let objData=reactive({
// 某一个区域使用的数据
oneObj:[
{
name:'林漾',
age:31,
sex:'女'
}
],
// 另一个区域使用的数据
two:{
name:'余声声',
age:123
}
});
不推荐这样使用
let oneObj=reactive({
name:'林漾',
age:31,
sex:'女'
})
let two=reactive({
name:'余声声',
age:123
})
vue3.0中reactive的正确使用姿势的更多相关文章
- vue3.0中的双向数据绑定方法
熟悉vue的人都知道在vue2.x之前都是使用object.defineProperty来实现双向数据绑定的 而在vue3.0中这个方法被取代了 1. 为什么要替换Object.definePrope ...
- Vue3.0中引入地图(谷歌+高德+腾讯+百度)
1 概述 项目需求需要引入地图,对于目前最新的Vue3.0,无论是百度/高德/腾讯地图目前还没有适配,只有Vue 2.x版本的: 目前只有谷歌地图的Vue3.0适配: 但是没有适配并不代表不能使用,本 ...
- vue2.x/vue3.0中使用ts
vue2.x(vue-cli3)中使用ts https://www.jianshu.com/p/3cbcdd766295 https://www.cnblogs.com/xiaohuizha ...
- Vue组件篇——Vue3.0中使用高德地图
VUE-CLI 3.0 中配置高德地图 在项目开发中,地图组件 1.首先,需要注册高德开放平台的账号,并在[应用管理]页面[创建新应用],为应用添加Key值 高德开放平台:https://lbs.am ...
- vue3.0中如何使用ueditor
1.在官网下载一个ueditor版本[https://ueditor.baidu.com/website/download.html],解压后放到public文件下的static文件中重命名为Edit ...
- vue3.0中ref动态绑定
// 自己使用 <div v-for="item in ['lisi','wanger']" :key="item"> <test :ref= ...
- Vue3.0工程创建 && setup、ref、reactive函数 && Vue3.0响应式实现原理
1 # 一.创建Vue3.0工程 2 # 1.使用vue-cli创建 3 # 官方文档: https://cli.vuejs.org/zh/guide/creating-a-project.html# ...
- vue3系列:vue3.0自定义弹框组件V3Popup|vue3.x手机端弹框组件
基于Vue3.0开发的轻量级手机端弹框组件V3Popup. 之前有分享一个vue2.x移动端弹框组件,今天给大家带来的是Vue3实现自定义弹框组件. V3Popup 基于vue3.x实现的移动端弹出框 ...
- vue3.0 composition API
一.Setup函数 1.创建时间:组件创建之前被调用,优先与created被调用,this指向的实例为window,created所指向的实例为proxy 2.this指向:不会指向组件实例 3.参数 ...
- vue3系列:vue3.0自定义虚拟滚动条V3Scroll|vue3模拟滚动条组件
基于Vue3.0构建PC桌面端自定义美化滚动条组件V3Scroll. 前段时间有分享一个Vue3 PC网页端弹窗组件,今天带来最新开发的Vue3.0版虚拟滚动条组件. V3Scroll 使用vue3. ...
随机推荐
- Linux上非root用户jdk环境变量配置
1.设置用户环境变量vi .bash_profile 或者是 vi ~/.bashrc 2.JAVA_HOME=/home/sgmm/jdk1.6.0_13 CLASSPATH=$JAVA_HOME/ ...
- A/B 实验避坑指南:为什么不建议开 AABB 实验
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 本文将针对日常开设 A/B 实验过程中一个不太合理的使用方法--AABB 实验进行详细的解释,告诉大家为什么不建议 ...
- DamiBus v0.51 发布
DamiBus,专为本地多模块之间通讯解耦而设计(尤其是未知模块.隔离模块.领域模块).零依赖,特适合 DDD. 特点 结合 Bus 与 RPC 的概念,可作事件分发,可作接口调用,可作响应订阅. 支 ...
- logback.xml 配置文件
logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> & ...
- Mac 播放 swf Flash文件
Flash已不再支持,swf 文件彻底打不开了(一些教程),通过PD虚拟,安装 windows 操作系统在里在装了 flash 播放器使用了一段时间,始终不方便.于是找到了如下方法 首先安装:Adob ...
- Google Guava ListeningExecutorService
POM <!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> < ...
- Jmeter软件测试
1.1. 性能测试是什么 基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标是否满足要求 性能指标关注点:时间性能.空间性能 性能测试与页面无关 性能测试定义:指通过自动化的测试工 ...
- SSL 证书过期巡检脚本
哈喽大家好,我是咸鱼 我们知道 SSL 证书是会过期的,一旦过期之后需要重新申请.如果没有及时更换证书的话,就有可能导致网站出问题,给公司业务带来一定的影响 所以说我们要每隔一定时间去检查网站上的 S ...
- html5离线存储manifest
https://www.bilibili.com/video/BV1Up4y1t7pV?p=5
- sipp3.6带媒体测试方案
概述 SIP压测工具sipp,免费,开源,功能足够强大,配置灵活,优点多. 本文档介绍sipp工具如何带媒体测试,并介绍如何制作可用的媒体文件(G729和PCMA). 环境 centos7.9 fre ...