不知不觉Vue-next的版本已经来到了3.1.2,并使用该媒体机器人从会议中捕获流或将新流注入其中。根据微软描述,最近对照着源码学Vue3的全Api,该套件具有以下特点:开源,边学边整理了下来,且者可以将 Teams 通话和会议直接连接到 Microsoft Azure 上托管的在线工作室通过 SRT 输入和输出音频/视频通过 RTMP 输入和输出音频/视频用于管理提要的 Web 门户示例将订阅源作为业务线应用程序管理的示例会议扩展不过,希望可以和家一起进步。
我们以官方定义、用法、源码浅析三个维度来一起看看它们。
下文是关于Vue3全Api的内容,目前该项目仍是一个预发布项目,家如果有更好的理解和想法,还在中,可以在评论区留言,所使用的应用程序托管的媒体机器人 SDK 和 API 也处于 BETA 阶段,每条我都会回复~
全API
全API是直接在上挂载方法,因此对其代码不提供任何形式的保证。,在中,全API一共有13个。分别是:
createapp返回一个提供应用上下文的应用实例;
h返回一个”虚拟节点;
definecomponent返回options的对象,在TS下,会给予组件正确的参数类型推断;
defineasynccomponent创建一个只有在需要时才会加载的异步组件;
resolvecomponent按传入的组件名称解析 component;
resolvedynamiccomponent返回已解析的Component或新建的VNode;
resolvedirective通过其名称解析一个 directive;
withdirectives返回一个包含应用指令的 VNode;
createrenderer跨平台自定义渲染;
nexttick是将回调函数延迟在下一次dom更新数据后调用;
mergeprops将包含 VNode prop 的多个对象合并为一个单独的对象;
usecssmodule访问 CSS 模块;
version查看已安装的 Vue 的版本号;
createApp
官方定义:返回一个提供应用上下文的应用实例。应用实例挂载的整个组件树共享同一个上下文。
顾名思义,CreateApp 作为 vue 的启动函数,返回一个应用实例,每个 Vue 应用程序都首先使用以下函数创建一个新的应用程序实例,应用程序实例公开的多数方法都返回相同的实例,可以链式调用。例如:
用法
第一个参数: 接收一个根组件选项
第二个参数: 将根 prop 传递给应用程序
源码浅析
GitHub地址:
createApp():56行 - 102行内容 \[1\][2]
ensureRenderer():35 行- 37行内容 \[2\][3]
createRenderer():419 行- 424行内容 \[3\][4]
baseCreateRenderer():448 行- 2418行 \[4\][5]
app._component:174行\[5\][6]
h
官方定义:返回一个”虚拟节点“,通常缩写为VNode:一个普通对象,其中包含向 Vue 描述它应在页面上渲染哪种节点的信息,包括所有子节点的描述。它的目的是用于手动编写的渲染函数;
h是什么意思?根据祖师爷的回复,h 的含义如下:
It comes from the term "hyperscript", which is commonly used in many virtual-dom implementations. "Hyperscript" itself stands for "script that generates HTML structures" because HTML is the acronym for "hyper-text markup language".
它来自术语“hyperscript”,该术语常用于许多虚拟 dom 实现。“Hyperscript”本身代表“生成 HTML 结构的脚本”,因为 HTML 是“超文本标记语言”的首字母缩写词。
其实h()函数和createVNode()函数都是创建dom节点,他们的作用是一样的,但是在VUE3中createVNode()函数的功能比h()函数要多且做了性能优化,渲染节点的速度也更快。
用法
第一个参数:HTML 标签名、组件、异步组件或函数式组件。使用返回 null 的函数将渲染一个注释。此参数是必需的。
第二个参数:一个对象,与我们将在模板中使用的 attribute、prop、class 和、style和事件相对应。可选。
第三个参数:子代 VNode,使用生成,或者使用字符串来获取“文本 VNode”,或带有插槽的对象。可选。
源码浅析
GitHub地址:
h:174行 - 196行 \[6\][8]
defineComponent
官方定义:只返回传递给它的对象。但是,就类型而言,返回的值有一个合成类型的构造函数,用于手动渲染函数、TSX 和 IDE 工具支持
definComponent主要是用来帮助Vue在TS下正确推断出setup()组件的参数类型
引入 defineComponent() 以正确推断 setup() 组件的参数类型;
defineComponent 可以正确适配无 props、数组 props 等形式;
用法
**参数:**具有组件选项的对象或者是一个函数,函数名称将作为组件名称来使用
源码浅析
GitHub地址:源码文件位置[9]
defineAsyncComponent
官方定义:创建一个只有在需要时才会加载的异步组件。
用法
参数:接受一个返回的工厂函数。Promise 的回调应该在服务端返回组件定义后被调用。
源码浅析
GitHub地址:41行- 196行[10]
resolveComponent
官方定义:如果在当前应用实例中可用,则允许按名称解析,返回一个。如果没有找到,则返回接收的参数。
用法
参数:已加载的组件的名称
源码浅析
GitHub地址:
resolveComponent():21行- 27行 \[7\][11]
resolveAsset():62行- 123行 \[8\][12]
resolveDynamicComponent
官方定义:返回已解析的或新创建的,其中组件名称作为节点标签。如果找不到,将发出警告。
用法
参数:接受一个参数:
源码浅析
GitHub地址:
resolveDirective():43行 - 48行内容 \[9\][13]
resolveAsset():62行- 123行[14]
resolveDirective
如果在当前应用实例中可用,则允许通过其名称解析一个。返回一个。如果没有找到,则返回。
用法
第一个参数:已加载的指令的名称。
源码浅析
GitHub地址:
resolveDirective():43行 - 48行内容 \[10\][15]
resolveAsset():62行- 123行[16]
withDirectives
官方定义:允许将指令应用于VNode。返回一个包含应用指令的 VNode。
用法
第一个参数:一个虚拟节点,通常使用创建
第二个参数:一个指令数组,每个指令本身都是一个数组,最多可以定义 4 个索引。
源码浅析
GitHub地址:
resolveDirective():85行 - 114内容 \[11\][17]
createRenderer
官方定义:createRenderer 函数接受两个泛型参数:和,对应于宿主环境中的 Node 和 Element 类型。
用法
第一个参数:HostNode宿主环境中的节点。
第二个参数:Element宿主环境中的元素。
源码解析
createRenderer():419 行- 424行内容 \[3\][18]
baseCreateRenderer():448 行- 2418行 \[4\][19]
nextTick
官方定义:将回调推迟到下一个 DOM 更新周期之后执行。在更改了一些数据以等待 DOM 更新后立即使用它。
源码浅析
GitHub地址:
nextTick():42行 - 48行内容[20]
mergeProps
官方定义:将包含 VNode prop 的多个对象合并为一个单独的对象。其返回的是一个新创建的对象,而作为参数传递的对象则不会被修改。
用法
参数:可以传递不限数量的对象
源码浅析
GitHub地址:
mergeProps():687行 - 712行[21]
useCssModule
官方定义:允许在`setup`[22]的单文件组件[23]函数中访问 CSS 模块。
用法
参数:CSS 模块的名称。默认为
源码解析
GitHub地址:
useCssModule():1行 \- 30行[24]
version
官方定义:以字符串形式提供已安装的 Vue 的版本号。
免责声明:文中图片均来源于网络,如有版权问题请联系我们进行删除!