浅谈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 相关文章推荐
漂亮的仿flash菜单,来自蓝色经典
Jun 26 Javascript
如何用javascript控制上传文件的大小
Oct 26 Javascript
JavaScript入门教程(8) Location地址对象
Jan 31 Javascript
JavaScript实现相册弹窗功能(zepto.js)
Jun 21 Javascript
如何使用Bootstrap 按钮实例详解
Mar 29 Javascript
AngularJS读取JSON及XML文件的方法示例
May 25 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
Jun 04 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
微信小程序实现流程进度的图样式功能
Jan 16 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
javascript导出csv文件(excel)的方法示例
Aug 25 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
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
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
phpstudy的php版本自由修改的方法
2017/10/18 PHP
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
JavaScript中的逻辑判断符&&、||与!介绍
2014/12/31 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
Python抽象类的新写法
2015/06/18 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
24式加速你的Python(小结)
2019/06/13 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
html5移动端价格输入键盘的实现
2019/09/16 HTML / CSS
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
一套SQL笔试题
2016/08/14 面试题
毕业设计计划书
2014/01/09 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python