首页 > 其他分享 > Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver 和 setImmediate,如果执行环境不支持,则会采用 setTimeout(fn, 0) 代

Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver 和 setImmediate,如果执行环境不支持,则会采用 setTimeout(fn, 0) 代

时间:2023-11-13 19:24:44浏览次数:46  
标签:异步 Vue setImmediate MutationObserver Promise setTimeout

下列关于Vue的描述错误的是( )

A
当给某个组件修改某个值时,该组件不会立即重新渲染

B
Vue内部使用原生Promise.then、MutationObserver和setImmediate实现异步队列,不会采用setTimeout(fn, 0)

C
$nextTick()返回一个Promise对象

D
$nextTick()可以配合async/await使用

正确答案:B

官方解析:当环境不支持Promise.then、MutationObserver和setImmediate时,Vue使用setTimeout(fn, 0)代替。

dom树计算完成,然后渲染树在进行渲染
源码中异步渲染的实现首先会判断当前支持的异步方法,当当前编译环境不支持promise等异步方式的话,就会使用setTimeout去实现异步更新

标签:异步,Vue,setImmediate,MutationObserver,Promise,setTimeout
From: https://www.cnblogs.com/longmo666/p/17829903.html

相关文章

  • Object.defineProperty(obj,key,val)不可以监听数组变化,需要做特殊处理,所以Vue3.0使用
    关于Vue双向数据绑定说法错误的是()AVue实现双向数据绑定是采用数据劫持和发布者-订阅者模式BObject.defineProperty(obj,key,val)可以监听数组变化,不需要做特殊处理CVue2.0数据劫持是利用ES5的Object.defineProperty(obj,key,val)方法来劫持每个属性的getter和setterD......
  • Vue怎么监听路由参数的变化?
    有两种方法可以监听路由参数的变化,但是只能用在包含<router-view/>的组件内第一种用侦听器监听watch:{ '$route'(to,from){ //在此处监听 },},第二种在路由守卫种监听beforeRouteUpdate(to,from,next){ //这里监听}......
  • vuejs3.0 从入门到精通——Vuex 4.x —— Getter
    Vuex4.x——Getterhttps://vuex.vuejs.org/zh/guide/getters.html 有时候我们需要从store中的state中派生出一些状态,例如对列表进行过滤并计数:computed:{doneTodosCount(){returnthis.$store.state.todos.filter(todo=>todo.done).length}} 如......
  • Vue中如何在有传参的情况下传入默认参数event
    <el-buttontype='primary'@click='handleSearch("kkk",$event)'>我是默认参数</el-button>点击查看代码handleSearch(val,e){ if(e){ /*默认参数*/ }}想要在传递参数的基础上添加默认参数,在vue中要使用$event来代替......
  • [转载]:npm create vite@latest 和 npm init vue@latest 的区别
    1.npmcreatevite@latest:使用Vite构建工具创建项目模板。Vite是一个现代化的前端构建工具,用于快速搭建现代化的Vue、React或者原生JavaScript项目。通过该命令创建的项目模板具有现代化的构建特性,如快速的热模块替换、即时的开发服务器、基于ES模块的构建等,能够提供......
  • vuejs3.0 从入门到精通——Vuex 4.x —— state
    Vuex4.x——statehttps://vuex.vuejs.org/zh/guide/state.html一、单一状态树 Vuex使用单一状态树——是的,用一个对象就包含了全部的应用层级状态。至此它便作为一个“唯一数据源(SSOT)”而存在。这也意味着,每个应用将仅仅包含一个store实例。单一状......
  • vuejs3.0 从入门到精通——Vuex
    Vuexhttps://vuex.vuejs.org/zh/一、Vue是什么? Vuex是一个专为Vue.js应用程序开发的状态管理模式+库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。1.1、什么是"状态管理模式"? 状态管理模式是一种在前端开发中管理......
  • vue2中的属性什么时候会没有响应式呢?
    vue2中的属性什么时候会没有响应式呢?exportdefault{data(){return{form:{}}},methods:{getDetail(){this.form={name:'张三',age:18}this.form.gender='male'//那么此......
  • 如何用Angular or Vue 来 实现Dynamics 365 WebResource 开发
    第一步:构建Angular项目,可以使用VisualStudio的项目模版创建(含.netCore相关)或者使用Angularcli创建,我习惯使用angularcli 执行以下命令:ngnew项目名称,回车可以选择含路由,style是CSSorLESS根据所需选取,稍等几分钟(取决于网络,会download......
  • vueCropper使用教程
    vueCropper使用教程1、使用步骤1.1、安装vue-croppernpminstallvue-croppermain.js里面使用importVueCropperfrom'vue-cropper'Vue.use(VueCropper)组件内使用import{VueCropper}from'vue-cropper'components:{ VueCropper}1.2、基本使用方法<!--外层......