createApp()

创建一个应用实例。

function createApp(rootComponent: Component, rootProps?: object): App

第一个参数是根组件。第二个参数可选,它是要传递给根组件的 props。

app.component()

如果同时传递一个组件名字符串及其定义,则注册一个全局组件;如果只传递一个名字,则会返回用该名字注册的组件 (如果存在的话)。

interface App {
  component(name: string): Component | undefined
  component(name: string, component: Component): this
}

app.directive()

如果同时传递一个名字和一个指令定义,则注册一个全局指令;如果只传递一个名字,则会返回用该名字注册的指令 (如果存在的话)。

interface App {
  directive(name: string): Directive | undefined
  directive(name: string, directive: Directive): this
}

app.provide()

提供一个值,可以在应用中的所有后代组件中注入使用。

app.version

获取当前vue的版本号

app.config.errorHandler

用于为应用内抛出的未捕获错误指定一个全局处理函数。

interface AppConfig {
  errorHandler?: (
    err: unknown,
    instance: ComponentPublicInstance | null,
    // `info` 是一个 Vue 特定的错误信息
    // 例如:错误是在哪个生命周期的钩子上抛出的
    info: string
  ) => void
}

app.config.warnHandler

用于为 Vue 的运行时警告指定一个自定义处理函数。

interface AppConfig {
  warnHandler?: (
    msg: string,
    instance: ComponentPublicInstance | null,
    trace: string
  ) => void
}

app.config.globalProperties

一个用于注册能够被应用内所有组件实例访问到的全局属性的对象。

这是对 Vue 2 中 Vue.prototype 使用方式的一种替代,此写法在 Vue 3 已经不存在了。与任何全局的东西一样,应该谨慎使用。

如果全局属性与组件自己的属性冲突,组件自己的属性将具有更高的优先级。

app.config.globalProperties.msg = 'hello'

选项式中使用

export default {
  mounted() {
    console.log(this.msg) // 'hello'
  }
}

组合式中使用

import { getCurrentInstance } from 'vue';

const instance = getCurrentInstance()
console.log(instance.appContext.config.globalProperties.msg)

isRef()

检查某个值是否为 ref。