返回顶部
首页 > 资讯 > 精选 >Vue3通用API功能如何使用
  • 837
分享到

Vue3通用API功能如何使用

2023-07-06 11:07:07 837人浏览 八月长安
摘要

这篇文章主要介绍了vue3通用api功能如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3通用API功能如何使用文章都会有所收获,下面我们一起来看看吧。通用APIversion (暴漏当前使用的Vu

这篇文章主要介绍了vue3通用api功能如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3通用API功能如何使用文章都会有所收获,下面我们一起来看看吧。

通用API

version (暴漏当前使用的Vue版本)
import Vue from 'vue';export default {    setup(props, context) {        console.log(Vue.version);        return {};    }};
nextTick (Dom更新完成后触发,用于获取更新后的Dom)

当我们更改响应式state时,Vue更新DOM并不是同步实时更新的,而是将同步执行的所有state更新缓存起来,同步代码执行完后再去执行Dom更新操作,很大程度的优化render性能,减少了Dom更新次数;

而这一特性带来的一个问题,我们无法在state更改后获取到真实的Dom,所以Vue提供了nextTick来获取state更新后的Dom

function nextTick(callback?: () => void): Promise<void>

使用案例

<template>    <div class="test_demo">        <h4 class="text">{{ text }}</h4>        <button @click="onBtnClick">更新</button>    </div></template><script lang="ts" setup>import { ref, nextTick } from 'vue';const text = ref('test_0');const onBtnClick = () => {    text.value = 'test_1';    nextTick(() => {        const text = (            document.querySelector<htmlElement>('.text') as HTMLElement        ).innerText;        console.log(text);    });    text.value = 'test_2';};</script>

点击更新按钮后,输出test_2。但是,如果注释掉text.value = 'test_1';,输出结果大不一样,输出test_0。

为什么会有这个问题?

text.value赋值操作是同步实时的,代码执行遇到响应式state的更改时,会提交一个视图更新逻辑到微任务队列,遇到nextTick,也会向微任务队列提交。 所以上述代码,视图更新逻辑nextTick前边,视图更新逻辑的执行是将text.value = 'test_1'text.value = 'test_2'合并后再更新视图,所以输出test2;

注释掉text.value = 'test_1'后,nextTick在微任务队列的顺序就在视图更新逻辑前边了,所以输出test_0。

defineComponent(类型推导的辅助函数, 让 typescript 正确地推导出组件选项内的类型)

如果你使用<script setup lang='ts'>语法,就需要使用definePropsTS推导出组件的Props

<script setup lang="ts">// 启用了 TypeScriptimport { ref } from 'vue'const props = defineProps({ msg: String })const count = ref(1)</script><template>  <!-- 启用了类型检查和自动补全 -->  {{ count.toFixed(2) }}</template>

如果没有使用setup语法,考虑使用defineComponent进行包裹,从而实现类型推导

import { defineComponent } from 'vue'export default defineComponent({  // 启用了类型推导  props: {    message: String  },  setup(props) {    props.message // 类型:string | undefined  }})

如果项目webpack,需要注意下,defineComponent可能导致组件无法被tree shaking, 为了确保组件被安全tree shaking,需要我们开发时做一下处理

export default  defineComponent()

如果项目用Vite,不需要做任何处理,因为Vite底层的Rollup会智能的认为defineComponent没有副作用。

defineAsyncComponent (异步组件)

开发过程中,有一些场景例如:弹框内的表单、其它Tab下的组件等在页面初始化时不需要加载,我们可以考虑使用defineAsyncComponent来声明成异步组件,从而提高页面初始化的速度。

用法一(从服务器获取组件)
import { defineAsyncComponent } from 'vue';const AsyncComp = defineAsyncComponent(() => {    return new Promise((resolve, reject) => {        // ...从服务器获取组件        resolve();    });});
用法二(异步加载本地组件)
import { defineAsyncComponent } from 'vue';const AsyncComp = defineAsyncComponent(    () => import('./components/MyComponent.vue'));
defineAsyncComponent其它参数配置
 const AsyncComp = defineAsyncComponent({        // 加载函数        loader: () => import('./Foo.vue'),        // 加载异步组件时使用的组件        loadinGComponent: LoadingComponent,        // 展示加载组件前的延迟时间,默认为 200ms        delay: 200,        // 加载失败后展示的组件        errorComponent: ErrorComponent,        // 如果提供了一个 timeout 时间限制,并超时了        // 也会显示这里配置的报错组件,默认值是:Infinity        timeout: 3000    });
Suspense

<Suspense> 是一个内置组件,用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌套异步依赖项解析完成,并可以在等待时渲染一个加载状态。

虽然defineAsyncComponent具备loadingComponent参数来配置加载异步组件时的Loading组件,但是在一些场景,是需要使用Suspense来使用的。例如:A组件依赖了B、C、D,如果三个都是异步组件,加载的过程要显示3个Loading,而Suspense可以配置所有子组件存在未加载时而现实的Loading。

defineCustomElement (使用Vue组件开发WEB Components)

关于Web Components的介绍请参考文章 Web Components入门

Vue 提供了一个和定义一般 Vue 组件几乎完全一致的defineCustomElement方法来支持创建自定义元素。

import { defineCustomElement } from 'vue';const MyVueElement = defineCustomElement({    });// 注册自定义元素customElements.define('my-vue-element', MyVueElement);

关于“Vue3通用API功能如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Vue3通用API功能如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Vue3通用API功能如何使用

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

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

猜你喜欢
  • Vue3通用API功能如何使用
    这篇文章主要介绍了Vue3通用API功能如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3通用API功能如何使用文章都会有所收获,下面我们一起来看看吧。通用APIversion (暴漏当前使用的Vu...
    99+
    2023-07-06
  • Vue3通用API功能怎么使用
    通用APIversion (暴漏当前使用的Vue版本)import Vue from 'vue'; export default { setup(props, context) { console.l...
    99+
    2023-05-14
    API Vue3
  • Vue3通用API功能示例剖析
    目录通用APIversion (暴漏当前使用的Vue版本)nextTick (Dom更新完成后触发,用于获取更新后的Dom)defineComponent(类型推导的辅助函数, 让 ...
    99+
    2023-05-18
    Vue3通用API Vue3 API功能
  • 如何使用HTML5的Notification API制作web通知功能
    本篇内容介绍了“如何使用HTML5的Notification API制作web通知功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大...
    99+
    2024-04-02
  • 如何使用HTML5实现Notification API桌面通知功能
    这篇文章将为大家详细讲解有关如何使用HTML5实现Notification API桌面通知功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   为什么需要HTML5的...
    99+
    2024-04-02
  • vue3中常用的API如何使用
    这篇文章主要介绍了vue3中常用的API如何使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。vue3.x已经发布了这么久,相关的生态也慢慢起来了,包括vite这个新的打包工...
    99+
    2023-06-14
  • 如何使用Vue3实现文章目录功能
    这篇文章主要为大家展示了“如何使用Vue3实现文章目录功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Vue3实现文章目录功能”这篇文章吧。前言这一段时间一直在做一个博客项目 ...
    99+
    2023-06-29
  • vue3中如何使用高德地图api
    本篇内容介绍了“vue3中如何使用高德地图api”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前置工作在开发之前我们需要了解 vue3 中接...
    99+
    2023-07-05
  • Vue3进阶主题Composition API如何使用
    这篇文章主要讲解了“Vue3进阶主题Composition API如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue3进阶主题Composition API如何...
    99+
    2023-07-06
  • Win8如何使用应用通知功能管理应用通知
      Win8自带磁贴应用如邮件在开始屏幕,方便用户打开,而且这些应用还有通知推送功能,比如新邮件到达通知,让用户知道最新动态,不会错漏任何有用消息。这些通知推送在Win8中如何管理呢   在Win8中,应用...
    99+
    2022-06-04
    通知 如何使用 功能
  • PHP文件API如何使用二维码功能?
    二维码是一种快速传递信息的方式,它可以在小的空间内存储大量的信息。随着智能手机的普及,二维码已经成为了一种常见的传递信息的方式。PHP文件API提供了一种方便的方法来生成二维码,并且可以自定义二维码的大小、颜色、形状等属性。在本文中,我们...
    99+
    2023-09-18
    文件 api 二维码
  • 如何使用PHP创建直播功能的API?
    在现代社会,直播已经成为了一种非常流行的网络娱乐方式。许多网站都提供了直播功能,包括Youtube,Facebook和Twitch等。如果您正在构建一个网站,并且想要提供直播功能,那么PHP是一个非常好的选择。本文将介绍如何使用PHP创建直...
    99+
    2023-05-22
    API PHP 直播功能
  • ASP 容器 API 文件:如何使用这个功能?
    ASP 容器 API 文件是一种非常有用的功能,可以帮助开发人员更轻松地使用 ASP 容器。在本文中,我们将深入探讨 ASP 容器 API 文件,介绍它们的功能和使用方法,并提供一些示例代码。 什么是 ASP 容器 API 文件? ASP...
    99+
    2023-08-19
    容器 api 文件
  • HTML5如何实现Notification API桌面通知功能
    这篇文章主要为大家展示了“HTML5如何实现Notification API桌面通知功能 ”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5如何实现Not...
    99+
    2024-04-02
  • vue3使用vuedraggable实现拖拽功能
    本文实例为大家分享了vue3使用vuedraggable实现拖拽功能的具体代码,供大家参考,具体内容如下 1、npm i vuedraggable -S,使用这个命令,vue3会报错...
    99+
    2024-04-02
  • Vue3中的Teleport功能怎么使用
    这篇文章主要介绍“Vue3中的Teleport功能怎么使用”,在日常操作中,相信很多人在Vue3中的Teleport功能怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中的Teleport功能怎...
    99+
    2023-07-02
  • vue3常用的API使用简介
    目录生命周期的变更reactiveref我们在vue2.x中获取元素标签是用 ref ,vue3.x我们要获取元素标签怎么办呢?toReftoRefsshallowReactives...
    99+
    2024-04-02
  • Vue3 Composition API的使用简介
    目录概述 示例为什么需要 setup ref、reactive computed与watch生命周期 vue3.0在7月发布了rc版本,vue-cli4.5后也支持选择vue3作为备...
    99+
    2024-04-02
  • 使用 Vue3 实现文章目录功能
    前言 这一段时间一直在做一个博客项目 Kila Kila Blog,找了一圈发现没有特别满足自己需求的目录组件,所以决定自己动手,完成一个满足以下预期目标的目录组件: 自动...
    99+
    2024-04-02
  • 使用Vue3+PDF.js实现PDF预览功能
    目录1 前言2 PDF 预览测试2.1 下载 PDF.js2.2 window.open 直接打开2.3 弹框形式打开3 修改配置项3.1 修改主题色为暗色系3.2 修改默认语言为简...
    99+
    2022-12-24
    vue使用pdf.js vue3.0 pdf vue pdf 预览
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作