057_末晨曦Vue技术_处理边界情况之强制更新($forceUpdate)与通过 v-once 创建低开销的静态组件
强制更新($forceUpdate)
在vue中,如果data中有基本数据类型变量:age,修改他,页面会自动更新。
但如果data中的变量为数组或对象(引用数据类型),我们直接去给某个对象或数组添加属性,页面是识别不到的,不会同步更新;
<template>
  <div id="app">
    name:<p>{{userInfo.name}}</p>
    age:<p>{{userInfo.age}}</p>
    <button @click="updateName">增加age属性</button>
  </div>
</template>
<script>
export default {
  name: 'App',
  data(){
    return {
      userInfo:{
        name:'末晨曦吖'
      }
    }
  },
  mounted() {
  },
  components:{
  },
  methods:{
    updateName(){
      this.userInfo.age = 18
    }
  }
}
</script>
<style scoped>
</style>
我们尝试给userInfo对象添加属性值,发现页面其实并没有变化
<template>
  <div id="app">
    name:<p>{{userInfo.name}}</p>
    age:<p>{{userInfo.age}}</p>
    <div v-for="(item,index) in list" :key="index">{{ item.name }} --- {{ item.age }}</div>
    <button @click="updateName">增加age属性</button>
  </div>
</template>
<script>
export default {
  name: 'App',
  data(){
    return {
      userInfo:{
        name:'末晨曦吖'
      },
      list:[
        { name:'末' }
      ]
    }
  },
  mounted() {
  },
  components:{
  },
  methods:{
    updateName(){
      // 对象
      // this.userInfo.age = 18
      // this.$forceUpdate()     // 第一种解决方式: this.$forceUpdate(); 强制刷新  同等效果的:window.location.reload()  不推荐
      // this.$set(this.userInfo,'age',18)   // 第二种解决方式 推荐使用
      // 数组
      // this.list[0].age = 18
      // this.$forceUpdate()
      // this.$set(this.list[0],'age',18)
    }
  }
}
</script>
<style scoped>
</style>
通过 v-once 创建低开销的静态组件
渲染普通的 HTML 元素在 Vue 中是非常快速的,但有的时候你可能有一个组件,这个组件包含了大量静态内容。在这种情况下,你可以在根元素上添加 v-once attribute 以确保这些内容只计算一次然后缓存起来,就像这样:
Vue.component('terms-of-service', {
  template: `
    <div v-once>
      <h1>Terms of Service</h1>
      ... a lot of static content ...
    </div>
  `
})
												
											057_末晨曦Vue技术_处理边界情况之强制更新($forceUpdate)与通过 v-once 创建低开销的静态组件的更多相关文章
- 057_末晨曦Vue技术_处理边界情况之强制更新和创建低开销的静态组件
		
强制更新和创建低开销的静态组件 点击打开视频讲解更加详细 强制更新 如果你发现你自己需要在 Vue 中做一次强制更新,99.9% 的情况,是你在某个地方做错了事. 你可能还没有留意到数组或对象的变更检 ...
 - 048_末晨曦Vue技术_处理边界情况之使用$root访问根实例
		
处理边界情况之使用$root访问根实例 点击打开视频教程 在每个 new Vue 实例的子组件中,其根实例可以通过 $root property 进行访问. 例如,在这个根实例中: src\main. ...
 - 056_末晨曦Vue技术_处理边界情况之X-template
		
处理边界情况之X-template 点击打开视频讲解更加详细 另一个定义模板的方式是在一个<script>元素中,并为其带上 text/x-template 的类型,然后通过一个 id 将 ...
 - 051_末晨曦Vue技术_处理边界情况之provide和inject依赖注入
		
provide和inject依赖注入 点击打开视频讲解更详细 在此之前,在我们描述访问父级组件实例的时候,展示过一个类似这样的例子: <google-map> <google-map ...
 - 054_末晨曦Vue技术_处理边界情况之组件之间的循环引用
		
组件之间的循环引用 点击打开视频讲解更详细 假设你需要构建一个文件目录树,像访达或资源管理器那样的.你可能有一个 <tree-folder> 组件,模板是这样的: <p> &l ...
 - 052_末晨曦Vue技术_处理边界情况之程序化的事件侦听器
		
程序化的事件侦听器 点击打开视频讲解更详细 现在,你已经知道了 $emit 的用法,它可以被 v-on 侦听,但是 Vue 实例同时在其事件接口中提供了其它的方法.我们可以: 通过 $on(event ...
 - 066_末晨曦Vue技术_过渡 & 动画之多个元素的过渡
		
多个元素的过渡 点击打开视频讲解更加详细 我们之后讨论多个组件的过渡,对于原生标签可以使用 v-if/v-else.最常见的多标签过渡是一个列表和描述这个列表为空消息的元素: <transiti ...
 - 058_末晨曦Vue技术_过渡 & 动画之过渡的类名
		
进入/离开 & 列表过渡 点击打开视频讲解更加详细 概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class ...
 - 前后端分离,我怎么就选择了 Spring Boot + Vue 技术栈?
		
前两天又有小伙伴私信松哥,问题还是职业规划,Java 技术栈路线这种,实际上对于这一类问题我经常不太敢回答,每个人的情况都不太一样,而小伙伴也很少详细介绍自己的情况,大都是一两句话就把问题抛出来了,啥 ...
 
随机推荐
- 【Python - pip source】工欲善其事,必先利其器 - 不要让 pip install timeout 成为你的烦恼
			
目录 前言 一.原因 二.解决方法 2.1 思路 2.2 国内镜像源列举 2.3 具体解决过程 2.3.1 方法一:命令行(推荐) 2.3.2 方法二:创建文件 总结 前言 解决pip install ...
 - Node.js躬行记(21)——花10分钟入门Node.js
			
Node.js 不是一门语言,而是一个基于 V8 引擎的运行时环境,下图是一张架构图. 由图可知,Node.js 底层除了 JavaScript 代码之外,还有大量的 C/C++ 代码. 常说 Nod ...
 - 关于python导入数据库excel数据时出现102, b"Incorrect syntax near '.15562'.DB-Lib error message 20018, severity 1的问题总结
			
1.对于在使用python导入sqlsever时,出现102, b"Incorrect syntax near '.15562'.DB-Lib error message 20018, se ...
 - conda命令的使用,环境安装,创建环境以Anaconda为例
			
Anaconda用命令conda创建环境: 安装Anaconda后,用Conda –version查看conda的版本号: Conda create -n name python = x.xx Con ...
 - 【NOIP2017 提高组正式赛】列队 题解
			
题目大意 有一个 \(n\times m\) 的方阵,每次有 \((x,y)\) 离开,离开后有两个命令 向左看齐.这时第一列保持不动,所有学生向左填补空缺.这条指令之后,空位在第 \(x\) 行第 ...
 - Linux文件拷贝脚本
			
在工作中,我们经常遇到要从Linux服务器拷贝日志至本地或者定期清理日志的需求,在服务器上,大型系统的日志是按模块存储的,这就导致日志的文件目录较多且层级不统一.我们从众多的目录手工筛选要下载或者删除 ...
 - VMware Workstation 虚拟机安装教程
			
一.介绍篇 VMware Workstation 16 Pro是VMware(威睿公司)于2021年最新发布的一代虚拟机软件,软件的中文名是"VMware 工作站 16 专业版". ...
 - Spring Security:用户和Spring应用之间的安全屏障
			
摘要:Spring Security是一个安全框架,作为Spring家族的一员. 本文分享自华为云社区<[云驻共创]深入浅出Spring Security>,作者:香菜聊游戏. 一.前言 ...
 - [LINUX] 像电影里的黑客一样用 terminal 作为日常开发
			
目录 1.效果预览 2.具体实现 2.1 定位鼠标位置 2.2 获取屏幕位置 2.3 计算鼠标在哪个窗口 2.4 1920x1080 平铺效果设计 2.5 1280x1024 平铺效果设计 3 代码 ...
 - NC20012 [HEOI2014]南园满地堆轻絮
			
NC20012 [HEOI2014]南园满地堆轻絮 题目 题目描述 小 Z 是 ZRP(Zombies' Republic of Poetry,僵尸诗歌共和国)的一名诗歌爱好者,最近他研究起了诗词音律 ...