浅谈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 相关文章推荐
直接生成打开窗口代码,不必下载
May 14 Javascript
js异或加解密效果代码
Jun 25 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
Jul 23 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
Mar 12 Javascript
javascript实现完美拖拽效果
May 06 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
JavaScript动态绑定详解
Sep 14 Javascript
vue组件的写法汇总
Apr 12 Javascript
react.js组件实现拖拽复制和可排序的示例代码
Aug 20 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
Nov 10 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
使用Vant完成Dialog弹框案例
Nov 11 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
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
python处理大数字的方法
2015/05/27 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
python之拟合的实现
2019/07/19 Python
python 动态调用函数实例解析
2019/10/21 Python
pygame实现成语填空游戏
2019/10/29 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
开学典礼校长致辞
2015/07/29 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书