浅谈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 Event学习第三章 早期的事件处理程序
Feb 07 Javascript
Javascript学习笔记二 之 变量
Dec 15 Javascript
目前流行的JavaScript库的介绍及对比
Sep 29 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
js实现加载更多功能实例
Oct 27 Javascript
Bootstrap笔记之缩略图、警告框实例详解
Mar 09 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
laravel-admin 与 vue 结合使用实例代码详解
Jun 04 Javascript
layui table复选框禁止某几条勾选的实例
Sep 20 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
详解JS函数防抖
Jun 05 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
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
php正则修正符用法实例详解
2016/12/29 PHP
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
实例讲解python函数式编程
2014/06/09 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
django实现类似触发器的功能
2019/11/15 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
学前教育毕业生自荐信
2013/10/29 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
赔偿协议书范本
2014/04/15 职场文书
民事授权委托书范文
2014/08/02 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript