相关文章推荐
苦恼的椰子  ·  ADB: ...·  3 周前    · 
眼睛小的香烟  ·  AI 輔助編程實戰 | 天瓏網路書店·  1 月前    · 
曾深爱过的沙滩裤  ·  在 macOS Monterey 12.4 ...·  8 月前    · 
冷冷的遥控器  ·  【寻找最美家乡河湖】征文入围作品展播⑤- ...·  2 年前    · 
高大的啄木鸟  ·  谁说只有大G是方盒子 ...·  2 年前    · 
Code  ›  Next.js+React+Node系统实战,搞定SSR服务器渲染 | 微信开放社区
https://developers.weixin.qq.com/community/develop/article/doc/00080a04470208dee6bda260c5b013
飘逸的蚂蚁
1 年前

交流专区
服务市场
微信学堂
文档
小程序
  • 常用主页

    小程序

    小游戏

    企业微信

    微信支付

  • 服务市场
    微信学堂
    文档
登录
评论

置顶 Next.js+React+Node系统实战,搞定SSR服务器渲染 精选 热门

猿人部落[www.97yrbl.com] 2022-04-06
642 浏览
0 评论

复制下载ZY:https://www.sisuoit.com/2811.html

概览

download: Next.js+React+Node系统实战,搞定SSR服务器渲染

f复制下载ZY:https://www.sisuoit.com/2811.html
官方文档说明:
  • 用法:

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

疑问:
  1. DOM 更新循环是指什么?
  2. 下次更新循环是什么时候?
  3. 修改数据之后使用,是加快了数据更新进度吗?
  4. 在什么情况下要用到?

原理

异步说明

Vue 实现响应式并 不是数据发生变化之后 DOM 立即变化 ,而是按一定的策略进行 DOM 的更新。

在 Vue 的 文档 中,说明 Vue 是 异步 执行 DOM 更新的。关于异步的解析,可以查看阮一峰老师的 这篇文章 。截取关键部分如下:

具体来说,异步执行的运行机制如下。

(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
(2)主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
(3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
(4)主线程不断重复上面的第三步。

下图就是主线程和任务队列的示意图。

事件循环说明

简单来说,Vue 在修改数据后,视图不会立刻更新,而是等 同一事件循环 中的所有数据变化完成之后,再统一进行视图更新。

知乎 上的例子:

//改变数据
vm.message = 'changed'
//想要立即使用更新后的DOM。这样不行,因为设置message后DOM还没有更新
console.log(vm.$el.textContent) // 并不会得到'changed'
//这样可以,nextTick里面的代码会在DOM更新后执行
Vue.nextTick(function(){
    console.log(vm.$el.textContent) //可以得到'changed'
 
推荐文章
苦恼的椰子  ·  ADB: Nexus5手机root,ota升级,线刷,开机绕过网络验证,checking connection
3 周前
眼睛小的香烟  ·  AI 輔助編程實戰 | 天瓏網路書店
1 月前
曾深爱过的沙滩裤  ·  在 macOS Monterey 12.4 環境,使用 Micropython 在 ESP32 SSD1306 顯示 圖形 – Civil in AI
8 月前
冷冷的遥控器  ·  【寻找最美家乡河湖】征文入围作品展播⑤- 四川省人民政府网站
2 年前
高大的啄木鸟  ·  谁说只有大G是方盒子 智行盒子两款MPV首发|新车|座椅|内饰|网约车_网易汽车
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号