web2native.md 1.1 KB
Newer Older
D
DCloud_LXH 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
# web开发者使用uni-app x注意

## 崩溃

强类型语言,在开发阶段有各种类型检查,避免运行期的错误。

但其实,强类型语言的运行期容错很差,需要大量手写的try catch,否则很容易崩溃。

比如给一个number类型的变量赋值一个字符串,在开发阶段会检查,编译不允许通过。

```ts
let a:number = "abc" //报错,无法编译
```

但如果从网络动态下载了一个数据,可能会逃过编译器的校验,如果在运行时发生了给number变量赋值或as或parseInt字符串等类型不匹配行为,App会直接崩溃。

这是原生开发和web开发非常大的不同。

uvue框架内部做了一些错误拦截,减少崩溃,报错会触发app的onError。

目前框架支持捕获错误的来源有(仅限同步代码):

- 组件渲染器(template模板代码)
- 事件处理器(template模板代码中监听的事件)
- 生命周期钩子(应用、页面、组件的生命周期)
- 侦听器(watch监听)

除了以上代码,其他地方如果代码写不对就会崩溃。开发者务必注意,在可能不安全的地方要try。