浅谈vue单一组件下动态修改数据时的全部重渲染


Posted in Javascript onMarch 01, 2018

今天在学习vue的过程中,发现一个有趣的现象。

在某一组件下的某一数据通过点击事件被动态修改的时候,对应view中的数据同步的进行了修改,没错,这不是废话吗,vue的一大特色就是数据的双向绑定。可有趣的是,该组件下我写的另一个用Math.random()的data值对应的值和视图也发生了变化

这就让我这个刚入门的小白有点奇怪了,我修改一个,怎么变了两个????脑洞放开一想,会不会数据在双向同步的时候,发生了什么,比如。是不是只要有一个节点变了,node都重新进行了加载???

我想这其中的缘由必定和vue数据的双向绑定的原理有关联,就搜索了一番,果然发现了些东西,就是DocumentFragment,之前好像见过,但没怎么重视。那么它是用来干啥的呢:

DocumentFragment(文档片段)可以看作节点容器,它可以包含多个子节点,当我们将它插入到 DOM 中时,只有它的子节点会插入目标节点,所以把它看作一组节点的容器。使用 DocumentFragment 处理节点,速度和性能远远优于直接操作 DOM。

手动划重点:Vue 进行编译时,就是将挂载目标的所有子节点劫持(真的是劫持,通过 append 方法,DOM 中的节点会被自动删除)到 DocumentFragment 中,经过一番处理后,再将 DocumentFragment 整体返回插入挂载目标。

以上这篇浅谈vue单一组件下动态修改数据时的全部重渲染就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
Bootstrap编写导航栏和登陆框
May 30 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
Oct 05 Javascript
关于使用js算总价的问题
Jun 23 Javascript
webpack中的热刷新与热加载的区别
Apr 09 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
5分钟快速掌握JS中var、let和const的异同
Sep 19 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
May 12 Javascript
JS实现简单移动端鼠标拖拽
Jul 23 Javascript
谈谈JavaScript令人迷惑的==与+
Aug 31 Javascript
在vue中使用vant TreeSelect分类选择组件操作
Nov 02 Javascript
vue 虚拟dom的patch源码分析
Mar 01 #Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 #Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
Mar 01 #Javascript
React Native 图片查看组件的方法
Mar 01 #Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
Mar 01 #Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
Mar 01 #Javascript
vue中使用cropperjs的方法
Mar 01 #Javascript
You might like
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
AngularJS ng-app 指令实例详解
2016/07/30 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
详解Python如何获取列表(List)的中位数
2016/08/12 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
线程同步的方法
2016/11/23 面试题
应聘编辑职位自荐信范文
2014/01/05 职场文书
有创意的广告词
2014/03/18 职场文书
导游词之任弼时故居
2020/01/07 职场文书
MySQL之DML语言
2021/04/05 MySQL
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript