1.给对象添加一个key值 成功的

<template>
<div>
<p>{{userInfo.name}}</p>
<p>{{userInfo.sex ? userInfo.sex : ''}}</p>
<button @click="updateName">修改userInfo</button>
</div>
</template>
<script>
export default {
data(){
return{
userInfo:{name:'小明'}
}
},
methods:{
updateName(){
this.userInfo.name='小红';
this.userInfo['sex']='男';//ok
}
}
}
</script>

2.给对象添加一个key值 失败的

<template>
<div>
<p>{{userInfo.name}}</p>
<p>{{userInfo.sex ? userInfo.sex : ''}}</p>
<button @click="updateName">修改userInfo</button>
</div>
</template>
<script>
export default {
data(){
return{
userInfo:{name:'小明'}
}
},
methods:{
updateName(){
this.userInfo['sex']='男';//失败的
}
}
}
</script>

3.好奇怪,为啥一个成功一个失败?

在什么情况下,直接给对象添加一个key值会失败?????
是在你直接给原来的对象上新增一个key值而且没有修改原来对象上的值如下
this.userInfo['sex']='男';
这样的修改肯定会失败的哈 你新增key值的时候;并且改变了原来已经有的key的内容;这样你新增的key值就可以更改成功
this.userInfo.name=this.userInfo.name+"213";
this.userInfo['sex']='男';//ok 为啥会这样是因为:
因为受现代JS的限制,vue不能检测到对象属性的添加或删除。(重要!!!)
vue不允许在已经创建的实例上动态添加新的根级响应式属性,(注意!!!)
不过可以使用Vue.set()方法将响应式属性添加到嵌套的对象上。

3.给对象添加key值的两种方式

<template>
<div>
<p>{{userInfo.name}}</p>
<p>{{userInfo.sex ? userInfo.sex : ''}}</p>
<button @click="updateName">修改userInfo</button>
</div>
</template>
<script>
import Vue from "vue" //Vue.set()的时候需要使用
export default {
data(){
return{
userInfo:{name:'小明'}
}
},
methods:{
updateName(){
// this.userInfo['sex']='男'; //失败的 // 解决方法一:注意要引入Vue
// Vue.set(this.userInfo, 'sex' ,'男') //解决办法二;不推荐因为消耗性能
this.userInfo['sex']='男';
this.$forceUpdate()
}
} }
</script>

4.forceUpdate的讲解

this.$forceUpdate()
它可以迫使Vue的实例重新渲染;
注意它仅仅影响实例本身以及插入插槽内的子组件;并不是所有的子组件

Vue中Vue.set()和this.$forceUpdate()的使用的更多相关文章

  1. vue中 Vue.set 的使用

    Vue.set(vm.items, indexOfItem, newValue) 1.vm.items :源数据:2.indexOfItem : 要修改的数据的键3.newValue : 要修改的数据 ...

  2. Vue中vue.config的配置

    vue-cli 3.x 脚手架搭建完成后,项目目录中没有 vue.config.js 文件,需要手动在根目录中创建 vue.config.js. vue.config.js 是一个可选的配置文件,如果 ...

  3. Vue 中渲染字符串形式的组件标签

    在vue中如果要渲染字符串形式的标签,vue 提供了 v-html 指令,可以很方便的渲染出来.但是如果这个标签是一个组件,或者element-ui 的组件时,就不能解析出来了,因为v-html 只能 ...

  4. vue中如何去掉空格

    一.问题 vue中当用户提交表单时,有的数据需要去掉前后空格然后再向后端发送. 二.解决方法 首先可以使用v-model.trim这个v-model修饰符去解决它,但是当用户输入\u200B时,这个方 ...

  5. Vue中控制更新的方式

    一.  强制更新的实例方法   vm.$forceUpdate() 迫使 Vue 实例重新渲染.注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件. 在没有留意到数组或对象的变更检测注意事 ...

  6. 8种Vue中数据更新了但页面没有更新的情况

    目录 1.Vue 无法检测实例被创建时不存在于 data 中的 属性 2. Vue 无法检测'对象属性'的添加或移除 3.Vue 不能检测利用数组索引直接修改一个数组项 4.Vue 不能监测直接修改数 ...

  7. vue中如何不通过路由直接获取url中的参数

    前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接 ...

  8. vue中的重要特性

    一.vue中的自定义组件 html的代码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  9. Vue中comoputed中的数据绑定

    Vue中的数据实现响应式绑定是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集依赖项,当数据发生变化时在set中通过调用dep. ...

  10. vue中使用stompjs实现mqtt消息推送通知

    最近在研究vue+webAPI进行前后端分离,在一些如前端定时循环请求后台接口判断状态等应用场景用使用mqtt进行主动的消息推送能够很大程度的减小服务端接口的压力,提高系统的效率,而且可以利用mqtt ...

随机推荐

  1. ​Black Hat 2022 聚焦软件供应链安全

    Black Hat 大会被公认为世界信息安全行业最权威大会,也是在全球范围内最具有技术性的信息安全大会.Black Hat USA 聚焦网络安全事件,并且持续向外界输出前沿安全技术研究成果以及行业发展 ...

  2. 由浅入深,揭秘企业级OLAP数据引擎ByteHouse

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在字节跳动各产品线飞速成长的过程中,对数据分析能力也提出了更高的要求,现有的主流数据分析产品都没办法完全满足业务要 ...

  3. Solon2 开发之IoC,六、提取 Bean 的函数进行定制开发

    为什么需要提取Bean的函数?绝不是闲得淡疼.比如:控制器的@Mapping:再比如:Xxl-Job的@XxlJob.这些都是要提取Bean的函数并定制加工的. 1.比如提取 @XxlJob 注解的函 ...

  4. 让 ChatGPT 如虎添翼 2.0

    月初写了4个工具,让 ChatGPT 如虎添翼!,时隔二十多天,我又发现了基于ChatGPT的应用,只推最好用的,强烈建议大家都感受一下. 极简搭建 ChatGPT 演示网页 项目地址:https:/ ...

  5. 手把手教你搭建深度学习开发环境(Tensorflow)

    前段时间在阿里云买了一台服务器,准备部署网站,近期想玩一些深度学习项目,正好拿来用.TensorFlow官网的安装仅提及Ubuntu,但我的ECS操作系统是 CentOS 7.6 64位,搭建Pyth ...

  6. Q查询进阶操作 ORM查询优化 only与defer select_related与prefetch_related ORM事务 ORM常用字段类型 ORM常用字段参数

    目录 Q查询进阶操作 children.append 图书查询功能 ORM查询优化 惰性查询 自动分页 limit only与defer only defer select_related与prefe ...

  7. Codeforces Round #712 (Div. 2) 个人题解

    这一场打的又很差(掉分预定),D题想不出来. A. Déjà Vu 这题首先判断字符串是否全由 a 组成,如果是的话输出 NO int main() { ios_base::sync_with_std ...

  8. 与奥运同行:打造智慧体育馆 3D 可视化

    祝贺中国队在东京奥运会夺得金牌 38 枚.银牌 32 枚.铜牌 18 枚.中国健儿在奥运舞台上交出了一份璀璨的成绩单.用一场场精彩绝伦的比赛,演绎"更快.更高.更强.更团结"的奥林 ...

  9. java实现微信扫码登录功能 精讲

    java实现微信扫码登录功能 精讲 https://www.bilibili.com/video/BV1RJ411N7ne?from=search&seid=18091761082032798 ...

  10. 基于java+springboot的图书借阅网站-在线图书借阅管理系统

    该系统是基于java+springboot开发的图书借阅管理系统.是给师弟开发的课程作业.大家学习过程中,遇到问题可以github咨询作者. 系统演示地址 前台 http://book.gitapp. ...