场景

在项目开发的时候,前端肯定是先写静态页面
在静态页面写好之后
然后就可以与后端对接数据了【高兴】
但是在对接接口的时候
我们会发现后端返回来的字段与前端在页面上写的可能不一致
这个时候有意思的事情就发生了

这种情况数据是不会跟新的

<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的正确使用姿势的更多相关文章

  1. vue3.0中的双向数据绑定方法

    熟悉vue的人都知道在vue2.x之前都是使用object.defineProperty来实现双向数据绑定的 而在vue3.0中这个方法被取代了 1. 为什么要替换Object.definePrope ...

  2. Vue3.0中引入地图(谷歌+高德+腾讯+百度)

    1 概述 项目需求需要引入地图,对于目前最新的Vue3.0,无论是百度/高德/腾讯地图目前还没有适配,只有Vue 2.x版本的: 目前只有谷歌地图的Vue3.0适配: 但是没有适配并不代表不能使用,本 ...

  3. vue2.x/vue3.0中使用ts

    vue2.x(vue-cli3)中使用ts      https://www.jianshu.com/p/3cbcdd766295 https://www.cnblogs.com/xiaohuizha ...

  4. Vue组件篇——Vue3.0中使用高德地图

    VUE-CLI 3.0 中配置高德地图 在项目开发中,地图组件 1.首先,需要注册高德开放平台的账号,并在[应用管理]页面[创建新应用],为应用添加Key值 高德开放平台:https://lbs.am ...

  5. vue3.0中如何使用ueditor

    1.在官网下载一个ueditor版本[https://ueditor.baidu.com/website/download.html],解压后放到public文件下的static文件中重命名为Edit ...

  6. vue3.0中ref动态绑定

    // 自己使用 <div v-for="item in ['lisi','wanger']" :key="item"> <test :ref= ...

  7. 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# ...

  8. vue3系列:vue3.0自定义弹框组件V3Popup|vue3.x手机端弹框组件

    基于Vue3.0开发的轻量级手机端弹框组件V3Popup. 之前有分享一个vue2.x移动端弹框组件,今天给大家带来的是Vue3实现自定义弹框组件. V3Popup 基于vue3.x实现的移动端弹出框 ...

  9. vue3.0 composition API

    一.Setup函数 1.创建时间:组件创建之前被调用,优先与created被调用,this指向的实例为window,created所指向的实例为proxy 2.this指向:不会指向组件实例 3.参数 ...

  10. vue3系列:vue3.0自定义虚拟滚动条V3Scroll|vue3模拟滚动条组件

    基于Vue3.0构建PC桌面端自定义美化滚动条组件V3Scroll. 前段时间有分享一个Vue3 PC网页端弹窗组件,今天带来最新开发的Vue3.0版虚拟滚动条组件. V3Scroll 使用vue3. ...

随机推荐

  1. 解读clickhouse存算分离在华为云实践

    摘要:本文是我们对clickhouse做了最简单的支持obs的适配改造. 本文分享自华为云社区<clickhouse存算分离在华为云实践>,作者: he lifu. clickhouse是 ...

  2. 字节跳动基于火山引擎DataLeap的一站式数据治理架构实践

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在7月22日举行的 ArchSummit 全球架构师峰会(深圳站)上,来自火山引擎DataLeap的技术专家为大家 ...

  3. 火山引擎DataTester:一个爆款游戏产品,是如何用A/B测试打磨出来的?

    随着国内游戏用户数量趋于饱和,中国游戏产业也从高速成长期逐渐转型,市场成熟度提升,竞争趋于精细化. 随着游戏出海以及私域流量运营的挑战,游戏企业对数据分析的使用需求和依赖度进一步提高.而在游戏研发立项 ...

  4. cmd 7z 文件压缩

    7z压缩测试 为了方便,将7z的安装目录,添加到环境变量中 # 不加环境变量的话,需要带上全路径 C:\Users\vipsoft>"C:\\Program Files\\7-Zip\ ...

  5. Linux 下运行.NET 6 7 8 程序遇到的两个问题

    一. /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的解决办法 1. 下载 libstdc++.so.6.0.21 文件 注意区分 ...

  6. Linux 网络收包流程

    哈喽大家好,我是咸鱼 我们在跟别人网上聊天的时候,有没有想过你发送的信息是怎么传到对方的电脑上的 又或者我们在上网冲浪的时候,有没有想过 HTML 页面是怎么显示在我们的电脑屏幕上的 无论是我们跟别人 ...

  7. 基于 eBPF 的 Serverless 多语言应用监控能力建设

    作者:竞霄 监控能力作为基础运维能力和核心稳定性措施,开发运维人员可以通过监控系统有效进行故障定位,预防潜在风险,分析长期趋势进行容量规划和性能调优,是软件开发生命周期中必不可少的一环.与此同时,Se ...

  8. 1 分钟在 Serverless 上部署现代化 Deno Web 应用

    作者 | 连喆人(掌上乾坤公司) 本文选自 "Serverless 函数计算征集令" 征文 利用 Serverless 的水平扩展与按量付费优势, 结合自定义运行时, 实现 Web ...

  9. S3C2440移植uboot之支持NORFLASH

      上节S3C2440移植uboot之支持NAND启动修改了代码支持了NAND启动.这节我们分析uboo使其支持NORFLASH的操作. 目录 1.分析启动错误 2.修改代码 3.在匹配数组中添加我们 ...

  10. java进阶(30)--Hashtable集合与Properties集合

    一.Hashtable简介 1.HashMap与Hashtable区别 Hashtable的key与value均不能为空,而HashMap均可以 2.Hashtable方法带有Synchronized ...