浅谈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类库的顶层对象名用户体验分析
Oct 24 Javascript
读jQuery之七 判断点击了鼠标哪个键的代码
Jun 21 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
js使用for循环查询数组中是否存在某个值
Aug 12 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
Apr 30 Javascript
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
JavaScript实现焦点进入文本框内关闭输入法的核心代码
Sep 20 Javascript
Angular2监听页面大小变化的解决方法
Oct 09 Javascript
移动端(微信等使用vConsole调试console的方法
Mar 05 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
Mar 31 Javascript
node.js如何根据URL返回指定的图片详解
Oct 21 Javascript
三种方式清除vue路由跳转router-link的历史记录
Apr 10 Vue.js
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中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
Javascript中实现trim()函数的两种方法
2015/02/04 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
js模式化窗口问题![window.dialogArguments]
2016/10/30 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python常见数据结构详解
2014/07/24 Python
Python图算法实例分析
2016/08/13 Python
Python时间获取及转换知识汇总
2017/01/11 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
Python自带的IDE在哪里
2020/07/01 Python
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
几个常见的消息中间件(MOM)
2014/01/08 面试题
大学生毕业自我评价范文分享
2013/11/11 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
体育教师求职信
2014/06/30 职场文书
检讨书范文
2015/01/27 职场文书
涨价通知
2015/04/23 职场文书
新学期家长寄语2016
2015/12/03 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
mysql优化
2021/04/06 MySQL
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技