当前位置: 首页 > news >正文

wordpress怎么设置跳站外链接主流的网站开发技术

wordpress怎么设置跳站外链接,主流的网站开发技术,创业给别人做网站怎么样,软件技术是什么引言 vue 项目中为什么要使用 nextTick 这个函数,是做什么用的,解决了哪些问题 1、nextTick 作用 用于处理DOM更新完成之后,执行回调函数的方法; 2、实现方案 vue2 中 nextTick() 是基于浏览器的 异步队列和微任务队列而执行…

引言

vue 项目中为什么要使用 nextTick 这个函数,是做什么用的,解决了哪些问题

1、nextTick 作用

用于处理DOM更新完成之后,执行回调函数的方法;

2、实现方案

vue2nextTick() 是基于浏览器的 异步队列微任务队列而执行的;
vue3nextTick() 是基于 MutationObserverPromise.resolve().then() 来实现的;解决了vue2 中 Promise() 的浏览器缺陷

vue3 中使用 Promise 封装 nextTick
如:

const promise = Promise.resolve()
export function nextTick(callback?:Function){return promise.then(callback)
}

Vue 3nextTick() 方法的行为和 Vue 2 中基本相似,但它进行了一些优化,以提高性能和稳定性。nextTick() 通过利用微任务(microtask)来确保在 DOM 更新之后执行回调,从而避免在同一事件循环中执行 DOM 操作。简单的理解是,当数据更新了,在dom中渲染后,自动执行函数。

<script setup>
import { ref, nextTick, onMounted } from 'vue'onMounted(async() => {await nextTick()// 在nextTick 下面的 js 都是属于异步的,都会等待 DOM更新完成之后再进行数据更新// 或者  如下 两种方式均可// await nextTick(() => {// })
})
</script>

3、nextTick 使用场景

a、在数据变化后等待DOM更新

比如更改了一个数据属性,该属性控制一个元素的可见性。然后你可能想要等待DOM更新以便可以获取该元素的新的宽度或高度。在这种情况下,你可以使用 nextTick() 来确保你的代码在DOM更新后执行。

<template>  <div ref="nameBox">{{ message }}</div>  
</template>  <script setup>  
import { ref, nextTick } from 'vue';  const message = ref('Andy');  const nameBox = ref(null);  const  updateMessage = () => {  message.value = 'Other name!';  nextTick(() => {  console.log(nameBox.value.textContent); // 输出: Other name!  });  }  
</script>

b、在创建或销毁组件后等待DOM更新

当创建或销毁Vue组件时,Vue需要时间来更新DOM。如果你需要立即访问新创建或已销毁的DOM元素,你可能会遇到问题,因为DOM可能还没有更新。在这种情况下,你可以使用 nextTick() 来确保你的代码在DOM更新后执行。

<template>  <div>  <button @click="handleChangCom">显隐组件</button>  <ChildComponent v-if="isShowChild" ref="componentRef" />  </div>  
</template>  <script setup>  
import { ref, nextTick } from 'vue';  
import ChildComponent from './ChildComponent.vue';  const isShowChild = ref(false);  const componentRef = ref(null);  //当我们点击按钮时,handleChangCom方法会被调用,从而修改 isShowChild 的值。//然后,我们使用nextTick()来等待Vue的DOM更新队列清空,确保如果ChildComponent被创建,//它现在已经被挂载到DOM上;如果它被销毁,它已经从DOM上移除。const handleChangCom = () => {  isShowChild.value = !isShowChild.value;  // 等待DOM更新  nextTick() if (isShowChild.value) {  // 现在ChildComponent已经被创建并挂载到DOM上  console.log('Child component has been mounted:', componentRef.value);  } else {  // 现在ChildComponent已经被销毁并从DOM上移除  console.log('Child component has been unmounted.');  }  }  </script>

c、在异步更新队列中插入自己的回调

Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发,只会被推入到队列中一次。这种在缓冲时去除重复数据,对于避免不必要的计算和 DOM 操作是非常重要的。然后,在下一个的事件循环“tick”中,Vue 刷新队列并执行实际 (已去重的) 工作。
Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver 和 setImmediate,如果执行环境不支持则会采用setTimeout(fn, 0) 代替。你可以通过 nextTick() 将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。

d、处理大量数据

在处理大量数据时,Vue.js 可能会变得有点慢,因为它需要时间来处理所有的数据并更新DOM。在这种情况下,你可能想要使用 nextTick() 来分批处理数据,以便给浏览器一些时间来更新DOM。这可以提高应用程序的性能,并减少用户在处理大量数据时的等待时间

<template>  <div>  <div v-for="(item, index) in items" :key="index">{{ item }}</div>  </div>  
</template>  <script setup>  
import { ref, nextTick } from 'vue';  const items = ref([]);  const fetchData = () => {  // 假设 getBatchListServer 是一个异步函数,用于从后台 getBatchListServer().then(newItems => {  items.value = newItems;  nextTick(() => {  console.log('All items are rendered');  // 这里可以执行依赖于所有项都已渲染的代码  });  });  }  </script>
http://www.yayakq.cn/news/547512/

相关文章:

  • 天津视频网站开发团队怎么做论坛社区网站
  • 网站建设公司彩铃移动的网络网站建设
  • 模板网站自助建站重庆专业的网站建设公司排名
  • 一级造价工程师报名网站友情链接交换群
  • 不是固定ip如何做网站网站建设方案页面设计分析
  • asp.net做网站有何意义wordpress账号登录界面
  • 微擎微网站开发在线看crm系统
  • 科技公司建设网站媒体公关
  • 西安百度推广网站洛阳做网站的公司有哪些
  • 期货交易网站开发阳江网吧
  • 衡东建设局网站启东 网站开发
  • 苏州网站设计都选苏州聚尚网络陆家网站建设
  • 深圳网站优化wordpress商城移动端
  • 不用开源程序怎么做网站阳江问政平台投诉平台
  • 做网站导航按钮怎么猛做长老环的网站
  • 宜兴市城乡建设局网站烟台做网站打电话话术
  • 做推广的网站那个好如何建立网站空间
  • 班服定制网站工商年检在哪个网站做
  • 网站建设步骤详解做网站多少分辨率就可以
  • 培训机构网站制作免费cdn服务器
  • 广州市网站建设在哪里门户媒体是指什么
  • 城市网站改版建设企业为什么要找会计
  • 河南做网站的公司游戏开发成本
  • 做网站后台怎么搭建青岛网站建设案例
  • 一个空间如何做2个网站个人网站建立平台
  • 设计个网站要多少钱网站充值接口怎么做
  • 展架设计制作图片网站优化 代码优化
  • 网站重新设计厦门建设局网站首页6
  • 网站制作公司哪家价钱合理新乡网站建设联系方式
  • 国家住房和城乡建设局网站建设网站有哪些目的是什么