首页 > 其他分享 >Vue3 · 小白学习全局 API:常规

Vue3 · 小白学习全局 API:常规

时间:2024-04-08 16:58:05浏览次数:21  
标签:nextTick function defineCustomElement DOM ComponentOptions 小白 API Vue3 defineCom

全局 API:常规

本次笔记
version
nextTick()
defineComponent()
defineAsyncComponent()
defineCustomElement()

1.version

暴露当前所使用的 Vue 版本。

  • 类型 string
  • 示例
import { version } from 'vue'

console.log(version)

2.nextTick()

等待下一次 DOM 更新刷新的工具方法。

  • 类型
 function nextTick(callback?: () => void): Promise<void>
  • 详细信息
    当你在 Vue 中更改响应式状态时,最终的 DOM 更新并不是 同步生效的,而是由 Vue 将它们缓存在一个队列中,直到下一个**“tick”才一起执行**。这样是为了确保每个组件无论发生多少状态改变,都仅执行一次更新。

nextTick() 可以在状态改变后立即使用,以等待 DOM 更新完成。你可以传递一个回调函数作为参数,或者 await 返回的 Promise。

  • 示例
<template>
  <button id="counter" @click="increment">{{ count }}</button>
</template>
<script setup>
import { ref, nextTick } from 'vue'

const count = ref(0)

async function increment() {
  count.value++

  // DOM 还未更新
  console.log(document.getElementById('counter').textContent) // 0

  await nextTick()
  // DOM 此时已经更新
  console.log(document.getElementById('counter').textContent) // 1
}
</script>


defineComponent() —整不懂

在定义 Vue 组件时提供类型推导的辅助函数。

  • 类型
 // 选项语法
function defineComponent(
  component: ComponentOptions
): ComponentConstructor

// 函数语法 (需要 3.3+)
function defineComponent(
  setup: ComponentOptions['setup'],
  extraOptions?: ComponentOptions
): () => any

defineAsyncComponent()

定义一个异步组件,它在运行时是懒加载的。参数可以是一个异步加载函数,或是对加载行为进行更具体定制的一个选项对象。

  • 类型
function defineAsyncComponent(
  source: AsyncComponentLoader | AsyncComponentOptions
): Component

type AsyncComponentLoader = () => Promise<Component>

interface AsyncComponentOptions {
  loader: AsyncComponentLoader
  loadingComponent?: Component
  errorComponent?: Component
  delay?: number
  timeout?: number
  suspensible?: boolean
  one rror?: (
    error: Error,
    retry: () => void,
    fail: () => void,
    attempts: number
  ) => any
}

defineCustomElement()

这个方法和 defineComponent 接受的参数相同,不同的是会返回一个原生自定义元素类的构造器。

  • 类型
 function defineCustomElement(
  component:
    | (ComponentOptions & { styles?: string[] })
    | ComponentOptions['setup']
): {
  new (props?: object): HTMLElement
}
  • 示例
 import { defineCustomElement } from 'vue'

const MyVueElement = defineCustomElement({
  /* 组件选项 */
})

// 注册自定义元素
customElements.define('my-vue-element', MyVueElement)

标签:nextTick,function,defineCustomElement,DOM,ComponentOptions,小白,API,Vue3,defineCom
From: https://blog.csdn.net/qq_51463650/article/details/137512510

相关文章

  • Vite+Vue3.0项目使用ant-design-vue <a-calendar>日期组件汉化
    antd的弹框、日期等默认为英文,要把英文转为中文请看下文:1.首先我们要在main.js中引入ant-design组件库并全局挂载:importAppfrom'./App'importAntdfrom'ant-design-vue';import'ant-design-vue/dist/antd.css';constapp=createApp(App);app.use(Antd);2.然......
  • 突破编程_C++_网络编程(Windows 套接字(API 接口(1)))
    1初始化与清理1.1WSAStartupWSAStartup函数用于初始化Winsock库,并指定应用程序所需的Winsock版本。它允许应用程序与WinsockDLL(动态链接库)建立联系,并准备Winsock环境以供后续使用。(1)函数原型如下:intWSAStartup(WORDwVersionRequested,LPWSADATAlpWSAData......
  • vue3使用van-picker组件时,滑动选中某个数值时在旁边相应显示单位
    vant的官方文档中没有支持这种需求的属性或方法,所以只能自己找别的方法。方法一van-picker控件选中某个元素时,该元素会有一个类名van-picker-column__item–selected我们可以在css里给这个类名通过::after,即使用伪类,来添加单位.van-picker-column__item--selected::aft......
  • Web API(五)之BOM操作&window对象&本地存储
    WebAPI(五)之BOM操作&window对象&本地存储js组成window对象定时器-延迟函数JS执行机制location对象navigator对象histroy对象本地存储localStoragesessionStorage(了解)localStorage存储复杂数据类型综合案例数组map方法数组join方法js组成JavaScript的组成ECMA......
  • 算法小白刷了一周 LeetCode 后的思考
    Hi,我是itchao我自己工作有2两年多的前端开发经验,但是数据结构与算法一直不好,基本就是一个算法小白的水平。听说大公司面试都要手写算法题,最近为了以后能去更好的公司,然后其实心里比较着急,打算在LeetCode刷题,到现在刷了差不多一周,也一直在掘金发博客分享刷题经历,其实也就6......
  • midjourney绘画,midjourney api接口国内如何对接
    项目背景众所周知,Midjourney并没有提供任何的Api服务,但是基于Midjourney目前的行业龙头位置,很多企业以及个人会有相关的需求。TTApi平台基于Midjourney现有功能整理出一套完整的可集成性高的服务,如果你有类似的需求,那么恭喜你找到了正确的使用方式。新用户注册免费送100配......
  • EBS 采用API生成一揽子采购协议
    程序包头createorreplacepackagecux_ws_scs_op_pba_pubis/*===============================================*===============================================*PROGRAMNAME:*cux_ws_op_vendor_scs_pub*DESCRIPTION:*......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代码,提交......
  • 实验一-密码引擎-3-加密API研究
    一、任务详情密码引擎API的主要标准和规范包括:1微软的CryptoAPI2RAS公司的PKCS#11标准3中国商用密码标准:GMT0016-2012智能密码钥匙密码应用接口规范,GMT0018-2012密码设备应用接口规范等研究以上API接口,总结他们的异同,并以龙脉GM3000Key为例,写出调用不同接口的代......