global-api.md 3.5 KB
Newer Older
D
DCloud_LXH 已提交
1 2 3 4 5 6 7 8
# 全局 API

## 应用实例 @app-instance

### 兼容性 @compatibility

<!-- VUEJSON.application.compatibility -->

D
DCloud_LXH 已提交
9 10 11 12 13 14 15 16
### app.component

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

示例 [详情](<!-- VUEJSON.E_app-instance.component_component.gitUrl -->)

::: preview <!-- VUEJSON.E_app-instance.component_component.webUrl -->

D
DCloud_LXH 已提交
17 18 19 20 21 22 23 24 25 26 27 28 29
> 注册全局组件

```ts
import App from './App.uvue'
import CompForAppComponent from '@/components/CompForAppComponent.uvue'
export function createApp() {
  const app = createSSRApp(App)
  app.component('CompForAppComponent', CompForAppComponent)
}
```

> 使用全局组件

D
DCloud_LXH 已提交
30 31 32 33
<!-- VUEJSON.E_app-instance.component_component.code -->

:::

D
DCloud_LXH 已提交
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
### app.use

`app.use` 支持通过对象字面量、函数及 `definePlugin` 方式定义插件。

支持传递插件参数,当传递插件参数时,`app` 的类型需要指定为 `VueApp`

示例 [详情](<!-- VUEJSON.E_app-instance.use_use-options.gitUrl -->)

::: preview <!-- VUEJSON.E_app-instance.use_use-options.webUrl -->

> 选项式 API
<!-- VUEJSON.E_app-instance.use_use-options.code -->

> 组合式 API
<!-- VUEJSON.E_app-instance.use_use-composition.code -->
:::

### app.config.globalProperties

请注意,`globalProperties` 是一个保留关键字,因此在项目中请勿声明名为 `globalProperties` 的变量。

在向 `globalProperties` 注册方法时,请使用直接函数表达式方式进行赋值。不支持先声明函数,再将其注册到 `globalProperties` 上的方式。同时,注册的函数一旦被赋值,不允许进行修改。

`globalProperties` 在编译时处理,因此确保你的操作在编译时是可知的。例如,将变量赋值给 `globalProperties` 时,这个变量在编译时必须是已知的,而不能是在运行时才能确定的变量。
件参数,当传递插件参数时,`app` 的类型需要指定为 `VueApp`

示例 [详情](<!-- VUEJSON.E_app-instance.globalProperties_globalProperties-options.gitUrl -->)

::: preview <!-- VUEJSON.E_app-instance.globalProperties_globalProperties-options.webUrl -->

> 选项式 API
<!-- VUEJSON.E_app-instance.globalProperties_globalProperties-options.code -->

> 组合式 API
<!-- VUEJSON.E_app-instance.globalProperties_globalProperties-composition.code -->
:::

## 应用生命周期 @app-lifecycle

uni-app x 新增了 [onLastPageBackPress](../collocation/App.md#applifecycle)[onExit](../collocation/App.md#applifecycle) 应用级生命周期,Android退出应用逻辑写在app.uvue里,新建项目的模板自动包含相关代码。如需修改退出逻辑,请直接修改相关代码。

示例 [详情](<!-- VUEJSON.E_App.example.gitUrl -->)

::: preview <!-- VUEJSON.E_App.example.webUrl -->

<!-- VUEJSON.E_App.example.code -->
:::

## 通用 @general

<!-- VUEJSON.general.compatibility -->

<!-- VUEJSON.general.example -->

### nextTick 使用注意事项 @nexttick

目前 nextTick 可以保证当前数据已经同步到 DOM,但是由于排版和渲染是异步的的,所以 nextTick 不能保证 DOM 排版以及渲染完毕。如果需要获取排版后的节点信息推荐使用 [uni.createSelectorQuery](../api/nodes-info.md) 不推荐直接使用 [Element](../dom/element.md) 对象。在修改 DOM 后,立刻使用 [Element](../dom/element.md) 对象的同步接口获取 DOM 状态可能获取到的是排版之前的,而 [uni.createSelectorQuery](../api/nodes-info.md) 可以保障获取到的节点信息是排版之后的。