iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue3深入学习 nextTick和historyApiFallback
  • 425
分享到

vue3深入学习 nextTick和historyApiFallback

vue3  nextTickvue3  historyApiFallback 2022-11-13 14:11:53 425人浏览 八月长安
摘要

目录1、nextTick2、historyapiFallback1、nextTick  官方解释:将回调推迟到下一个 DOM 更新周期之后执行。在更改了一些数据以等待 DO

1、nextTick

 官方解释:将回调推迟到下一个 DOM 更新周期之后执行。在更改了一些数据以等待 DOM 更新后立即使用它。

比如我们有下面的需求:

  • 点击一个按钮,我们会修改在h2中显示的message;
  • message被修改后,获取h2的高度;
<template>
  <div>
    <h3 class="title" ref="title">{{ message }}</h3>
    <button @click="handleClick">添加内容</button>
  </div>
</template>
<script setup>
import { ref } from 'Vue'
const message = ref('')
const title = ref(null)

const handleClick = () => {
  message.value += 'NextTick!'
  console.log(title.value.offsetHeight)
}
</script>

<style scoped>
.title {
  width: 100px;
  Word-break: break-all;
}
</style>

可以看到,上面每次打印的都是上一次元素内容的高度

实现上面的案例我们有三种方式:

  • 方式一:在点击按钮后立即获取到h2的高度(错误的做法)
  • 方式二:在updated生命周期函数中获取h2的高度(但是其他数据更新,也会执行该操作)
<template>
  <div>
    <h3 class="title" ref="title">{{ message }}</h3>
    <button @click="handleClick">添加内容</button>
  </div>
</template>

<script setup>
import { ref, onUpdated } from 'vue'

const message = ref('')
const title = ref(null)

const handleClick = () => {
  message.value += 'NextTick!'
}

onUpdated(() => {
  console.log(title.value.offsetHeight)
})
</script>

<style scoped>
.title {
  width: 100px;
  word-break: break-all;
}
</style>

方式三: 使用nextTick函数;

nextTick是如何做到的呢?

<template>
  <div>
    <h3 class="title" ref="title">{{ message }}</h3>
    <button @click="handleClick">添加内容</button>
  </div>
</template>
<script setup>
import { ref, nextTick } from 'vue'

const message = ref('')
const title = ref(null)

const handleClick = () => {
  message.value += 'NextTick!'

  // 更新 DOM
  nextTick(() => {
    console.log(title.value.offsetHeight)
  })
}
</script>

<style scoped>
.title {
  width: 100px;
  word-break: break-all;
}
</style>

2、historyApiFallback

1.historyApiFallback是开发中一个非常常见的属性,它主要的作用是解决SPA页面在路由跳转之后,进行页面刷新时,返回404的错误。

2.boolean值:默认是false

  • 如果设置为true,那么在刷新时,返回404错误时,会自动返回 index.html 的内容;

3.object类型的值,可以配置rewrites属性:

  • 可以配置from来匹配路径,决定要跳转到哪一个页面;

4.事实上devServer中实现historyApiFallback功能是通过connect-history-api-fallback库的:

可以查看文档

代码在vue-cli脚手架项目node_modules/@vue/cli-service/lib/commands/serve.js中:

const server = new webpackDevServer(compiler, Object.assign({
  historyApiFallback: {
    disableDotRule: true
  }
}))

现在已经是vite打包工具了,上面是webpack的配置

自己配置可以在项目根目录下创建一个vue.config.js文件,在这个文件中进行配置:

module.exports = {
  configureWEBpack: {
    devServer: {
      historyApiFallback: true
    }
  }
}

到此这篇关于vue3深入学习 nextTick和historyApiFallback的文章就介绍到这了,更多相关vue3 nextTick和historyApiFallback内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue3深入学习 nextTick和historyApiFallback

本文链接: https://www.lsjlt.com/news/172131.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue3深入学习 nextTick和historyApiFallback
    目录1、nextTick2、historyApiFallback1、nextTick  官方解释:将回调推迟到下一个 DOM 更新周期之后执行。在更改了一些数据以等待 DO...
    99+
    2022-11-13
    vue3  nextTick vue3  historyApiFallback
  • opencv深入浅出了解机器学习和深度学习
    目录机器学习kNN算法图解kNN算法用kNN算法实现手写数字识别SVM算法图解SVM算法使用SVM算法识别手写数据k均值聚类算法图解k均值聚类算法使用k均值聚类算法量化图像颜色深度学...
    99+
    2024-04-02
  • Vue3学习之深度剖析CSS Modules和Scope
    Css Modules 是通过对标签类名进行加装成一个独一无二的类名,比如.class 转换成.class_abc_123,类似于symbol,独一无二的键名Css Scope 是通过为元素增加一个自定义属性,这个属性加上独一无二的编号,而...
    99+
    2023-05-14
    前端 Vue.js
  • Python深度学习 深度学习入门基于
    《Python深度学习》由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。书...
    99+
    2023-01-31
    深度 入门 Python
  • scrapy深入学习----(3)
    最新版本 0.10.我们可以通过scrapy命令行工具来控制Scrapy, 这里我们使用了“Scrapy tool”这么一个词,用来区分他们的子命令,那些通常我们称为 “commands”,或者 “Scrapy commands”.处于各种...
    99+
    2023-01-31
    scrapy
  • 深入学习JS XML和Fetch请求
    目录1.HTTP 简介HTTP/0.9 ( 1991 )HTTP/1.0 (1996 )HTTP/1.1(1997)常用状态码header请求头header响应头Content-Ty...
    99+
    2024-04-02
  • PyTorch 深度学习入门
    💂 个人网站:【 海拥】【萌怪大冒险】【2048】🤟 风趣幽默的前端学习课程:👉28个案例趣学前端💅 想寻找共同学习交流、摸鱼划水的...
    99+
    2023-09-25
    pytorch 深度学习 python
  • pyTorch深入学习梯度和Linear Regression实现
    目录梯度线性回归(linear regression)模拟数据集加载数据集定义loss_function梯度 PyTorch的数据结构是tensor,它有个属性叫做requires_...
    99+
    2024-04-02
  • 深入学习C#多线程
    目录一、基本概念1、进程2、线程二、多线程2.1System.Threading.Thread类2.2 线程的常用属性2.2.1线程的标识符2.2.2线程的优先级别2.2....
    99+
    2024-04-02
  • Python struct模块-深入学习
    Python struct模块 用处struct模块中的函数格式化字符串 对齐方式格式符code使用示例Python参考手册struct模块链接 转载请标明出处(http://blog.csdn.net/lis_12/a...
    99+
    2023-01-31
    模块 Python struct
  • 深入学习JavaScript中的promise
    目录为什么要用Promise?使用Promise解决异步控制问题Promise的结构回调函数为什么异步代码一定是回调函数结构?刨析Promise原型方法——c...
    99+
    2024-04-02
  • 深入学习java8 中的CompletableFuture
    目录1 前言2 简单使用3 异步处理3.1 thenApply3.2 thenAccept 和 thenRun3.3 exceptionally 异常处理3.4 whenComple...
    99+
    2024-04-02
  • C/C++后端学习与练习深入
    目录一、算法训练1.拓扑顺序2.功夫传人3.二叉树中的最低公共祖先二、工程项目训练day1.Qt(串口的使用)三、总结一、算法训练 首先给大家带来校招程序员考察的核心技能训练:算法,...
    99+
    2024-04-02
  • angular学习之深入聊聊状态和动画
    本篇文章带大家深入了解一下angular中的状态和动画,简单介绍一下创建动画的方法,并聊聊关键帧动画、动画回调、可重用动画、交错动画等知识点,希望对大家有所帮助!状态1、什么是状态状态表示的是要进行运动的元素在运动的不同时期所呈现的样式。2...
    99+
    2023-05-14
    状态 动画 Angular
  • 深入聊聊怎么学习golang
    Golang是一门比较流行的编程语言,可以用于构建强大的应用程序。虽然它相对于其他编程语言来说还比较年轻,但是它已经赢得了一定的用户群。Golang的发展速度很快,因此学习它也变得越来越重要。在本文中,我们将讨论如何学习Golang并且成为...
    99+
    2023-05-14
  • 深入学习 Mysql 引擎 InnoDB、MyISAM
    tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 💕💕 推荐:体系化学习Java(Ja...
    99+
    2023-08-31
    mysql java 面试 innodb myisam
  • 深入学习SpringCloud之SpringCloud简介
    Spring Cloud是什么? SpringCloud官网:http://spring.io Spring Cloud是一个一站式的开发分布式系统的框架,为开发者提供了一系列的构建...
    99+
    2024-04-02
  • 深度学习和机器学习有什么差别
    深度学习和机器学习是两个相关但不同的概念。机器学习是一种广义的概念,指的是让计算机系统通过学习数据并改善性能,而不是通过显式的编程。...
    99+
    2023-09-20
    深度学习
  • 如何深入学习MySQL授权表
    如何深入学习MySQL授权表,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们将向读者详细介绍MySQL的授权表,并通过一些实例来讲解My...
    99+
    2024-04-02
  • python类属性学习深入讲解
    class MyClass(): # 直接将属性定义在类中,这种属性称为 类属性 # 类属性可以通过实列对象和类对象访问,但是只能通过类对象修改 # 类属性都是用来保...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作