美文网首页
vue 不常用的API --- $forceupdate

vue 不常用的API --- $forceupdate

作者: suliang2010 | 来源:发表于2023-03-16 23:18 被阅读0次

场景描述

在vue的世界中,MVVM 框架的数据驱动视图变化,这是一种常识;不过,有没有可能,我们在变更数据之后,视图居然不会进行变化的情况呢?

vue的数据双绑

vue 的核心底层逻辑就是 通过数据劫持来实现双向绑定的;其中vue2.X 是 object.defineproperty 实现的defineReactive 函数;vue3.x 是proxy实现的reactivity 响应式;那么我们就来讨论下什么情况下会造成数据劫持失败~

defineproperty 的天然缺陷

作为js 早期支持的api, defineproperty 本身就是对对象已经存在key进行get,set拦截处理;当一个不存在的key加入到了已经被 defineReactive 之后的对象中,会发生什么?oh,数据的双绑失效了;然后才有了补救措施一样的 $set;

作为es6 支持的proxy 天然支持对对象的 get,set 支持;但是对本身是 基本基础类型无爱,所以又衍生出了 ref api;

言归正传,使用场景

$forceupdate 从api名字上面能够得出,这是要用于强制更新的;而强制更新的内容,正式我们的视图;什么情况下我们需要用到这个api呢?

  • 当需要 $set 而因为一些原因没有使用,可以用 $forceupdate,强制更新;
  • 当因为data 对象的层级过深,明明可以观测到已经有了数据变化,但是视图没有更新的时候,可以使用;
  • 当数据用于展示样式的呈现时,明明样式已经挂载,但是视图就是没有生效时,可以使用;
  • 当定义的数据本来就不是 双向绑定的数据,在一定操作后,想要进行数据呈现时,可以使用;
  • 当你认为需要进行强制更新界面的时候,可以使用;

声明

本api $forceupdate, 适用于 vue2.x 和 vue3.x
使用方式为: this.$forceupdate() ; 此处需要组件实例,请注意 vue3.x setup 中不存在this;

以上~ 谢谢大家~

相关文章

  • 2019-05-27

    Vue 常见坑汇总 this.$forceUpdate(); 使用this.$forceUpdate()可以重新渲...

  • vue强制更新$forceUpdate()

    vue强制更新$forceUpdate() 添加this.$forceUpdate();进行强制渲染,效果实现。搜...

  • this.$forceUpdate

    vue强制更新this.$forceUpdate() 调用强制更新方法this.$forceUpdate()会更新...

  • vue强制更新视图 $forceUpdate()

    今日又学一招~ vue 强制更新视图 $forceUpdatevm.$forceUpdate() 迫使Vue实例重...

  • Vue 中 $forceUpdate

    首先我们知道在vue中,数据的绑定都不用我们操心,例如在data中有一个msg的变量,你修改它,那么在页面上,ms...

  • VUE 2.x中全局组件的封装(三)

    Vue.extend 属于 Vue 的全局 API,在实际业务开发中我们很少使用,因为相比常用的 Vue.comp...

  • 你知道Vue 3的vue模块包含多少API?113个!

    比如从import { reactive, computed } from 'vue'可以看到,我们常用的API可...

  • vue强制更新

    使用update this.$forceUpdate(),强制视图更新 用vue.set this.$set(th...

  • Vue常用文档记录

    最近正在学习Vue,对Vue常用的一些api文档地址进行总结(仅为方便自己查看与学习记录) 1、Vue官方文档 ...

  • 1.uni-app简介

    页面遵循Vue当文件组件的格式规范 vue文件.png 跨端兼容 uni-app 已将常用的组件、JS API 封...

网友评论

      本文标题:vue 不常用的API --- $forceupdate

      本文链接:https://www.haomeiwen.com/subject/tcwdrdtx.html