Skip to content

Commit 8bfcf62

Browse files
authored
Merge pull request #22 from zhousg/translation-zh
translation: update dead links
2 parents aba40c8 + 9bd70fb commit 8bfcf62

40 files changed

+224
-202
lines changed

.vitepress/locales/zh.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export default {
154154
link: '/zh/breaking-changes/transition-group'
155155
},
156156
{
157-
text: 'VNode 声明周期事件',
157+
text: 'VNode 生命周期事件',
158158
link: '/zh/breaking-changes/vnode-lifecycle-events'
159159
},
160160
{ text: 'Watch 侦听数组', link: '/zh/breaking-changes/watch' }

.vitepress/theme/MigrationBadges.vue

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
<script>
2+
import { useData } from 'vitepress'
23
const validBadges = {
34
new: 'new',
45
breaking: 'breaking',
56
removed: 'removed',
67
updated: 'updated'
78
}
9+
const localeBadges = {
10+
'en-US': validBadges,
11+
'zh-CN': {
12+
new: '新增',
13+
breaking: '非兼容',
14+
removed: '移除',
15+
updated: '更新'
16+
}
17+
}
818
919
export default {
1020
props: {
@@ -16,10 +26,9 @@ export default {
1626
}
1727
}
1828
},
19-
data() {
20-
return {
21-
validBadges
22-
}
29+
setup () {
30+
const { site } = useData()
31+
return { validBadges: localeBadges[site.value.lang] ?? validBadges }
2332
}
2433
}
2534
</script>

src/zh/breaking-changes/async-components.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const asyncModalWithOptions = defineAsyncComponent({
5858
```
5959

6060
::: tip 注意
61-
Vue Router 支持一个类似的机制来异步加载路由组件,也就是俗称的*懒加载*。尽管类似,但是这个功能和 Vue 所支持的异步组件是不同的。当用 Vue Router 配置路由组件时,你****应该使用 `defineAsyncComponent`。你可以在 Vue Router 文档的[懒加载路由](https://next.router.vuejs.org/guide/advanced/lazy-loading.html)章节阅读更多相关内容。
61+
Vue Router 支持一个类似的机制来异步加载路由组件,也就是俗称的*懒加载*。尽管类似,但是这个功能和 Vue 所支持的异步组件是不同的。当用 Vue Router 配置路由组件时,你****应该使用 `defineAsyncComponent`。你可以在 Vue Router 文档的[懒加载路由](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html)章节阅读更多相关内容。
6262
:::
6363

6464
对 2.x 所做的另一个更改是,`component` 选项现在被重命名为 `loader`,以明确组件定义不能直接被提供。
@@ -94,5 +94,5 @@ const asyncComponent = defineAsyncComponent(
9494

9595
有关异步组件用法的详细信息,请参阅:
9696

97-
- [指南:动态 & 异步组件](/guide/component-dynamic-async.html#在动态组件上使用-keep-alive)
98-
- [迁移构建开关:`COMPONENT_ASYNC`](migration-build.html#兼容性配置)
97+
- [指南:异步组件](https://cn.vuejs.org/guide/components/async.html)
98+
- [迁移构建开关:`COMPONENT_ASYNC`](../migration-build.html#兼容性配置)

src/zh/breaking-changes/attribute-coercion.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ badges:
140140
</tbody>
141141
</table>
142142

143-
[迁移构建开关:](migration-build.html#兼容性配置)
143+
[迁移构建开关:](../migration-build.html#兼容性配置)
144144

145145
- `ATTR_FALSE_VALUE`
146146
- `ATTR_ENUMERATED_COERCION`

src/zh/breaking-changes/attrs-includes-class-style.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export default {
6060

6161
在使用了 `inheritAttrs: false` 的组件中,请确保样式仍然符合预期。如果你之前依赖了 `class``style` 的特殊行为,那么一些视觉效果可能会遭到破坏,因为这些 attribute 现在可能被应用到了另一个元素中。
6262

63-
[迁移构建开关:`INSTANCE_ATTRS_CLASS_STYLE`](migration-build.html#兼容性配置)
63+
[迁移构建开关:`INSTANCE_ATTRS_CLASS_STYLE`](../migration-build.html#兼容性配置)
6464

6565
## 参考
6666

src/zh/breaking-changes/children.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ export default {
3737

3838
## 3.x 更新
3939

40-
在 3.x 中,`$children` property 已被移除,且不再支持。如果你需要访问子组件实例,我们建议使用 [$refs](/guide/component-template-refs.html#模板引用)
40+
在 3.x 中,`$children` property 已被移除,且不再支持。如果你需要访问子组件实例,我们建议使用 [模板引用](https://cn.vuejs.org/guide/essentials/template-refs.html#template-refs)
4141

4242
## 迁移策略
4343

44-
[迁移构建开关:`INSTANCE_CHILDREN`](migration-build.html#兼容性配置)
44+
[迁移构建开关:`INSTANCE_CHILDREN`](../migration-build.html#兼容性配置)

src/zh/breaking-changes/custom-directives.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ mounted(el, binding, vnode) {
103103
```
104104

105105
:::warning
106-
有了[片段](/guide/migration/fragments.html#概览)的支持,组件可能会有多个根节点。当被应用于多根组件时,自定义指令将被忽略,并将抛出警告。
106+
有了[片段](../new/fragments.html#概览)的支持,组件可能会有多个根节点。当被应用于多根组件时,自定义指令将被忽略,并将抛出警告。
107107
:::
108108

109109
## 迁移策略
110110

111-
[迁移构建开关:`CUSTOM_DIR`](migration-build.html#兼容性配置)
111+
[迁移构建开关:`CUSTOM_DIR`](../migration-build.html#兼容性配置)

src/zh/breaking-changes/custom-elements-interop.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ Vue.config.ignoredElements = ['plastic-button']
9696
document.createElement('button', { is: 'plastic-button' })
9797
```
9898

99-
[迁移构建开关:`COMPILER_IS_ON_ELEMENT`](migration-build.html#兼容性配置)
99+
[迁移构建开关:`COMPILER_IS_ON_ELEMENT`](../migration-build.html#兼容性配置)
100100

101101
## 使用 `vue:` 前缀来解决 DOM 内模板解析问题
102102

@@ -128,3 +128,7 @@ Vue.config.ignoredElements = ['plastic-button']
128128
-`config.ignoredElements` 替换为 `vue-loader``compilerOptions` (使用构建步骤) 或 `app.config.compilerOptions.isCustomElement` (使用动态模板编译)
129129

130130
- 将所有非针对 `<component>` 标签的 `is` 用法更改为 `<component is="...">` (对于 SFC 模板) 或为其添加 `vue:` 前缀 (对于 DOM 内模板)。
131+
132+
## 参考
133+
134+
- [迁移指南 - Vue 与 Web Components](https://cn.vuejs.org/guide/extras/web-components.html)

src/zh/breaking-changes/data-option.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ const CompA = {
111111
}
112112
```
113113

114-
[迁移构建开关:`OPTIONS_DATA_FN`](migration-build.html#兼容性配置)
114+
[迁移构建开关:`OPTIONS_DATA_FN`](../migration-build.html#兼容性配置)
115115

116116
## 迁移策略
117117

@@ -122,7 +122,7 @@ const CompA = {
122122

123123
对于依赖 mixin 的深度合并行为的用户,我们建议重构代码以完全避免这种依赖,因为 mixin 的深度合并非常隐式,这让代码逻辑更难理解和调试。
124124

125-
[迁移构建开关:](migration-build.html#兼容性配置)
125+
[迁移构建开关:](../migration-build.html#兼容性配置)
126126

127127
- `OPTIONS_DATA_FN`
128128
- `OPTIONS_DATA_MERGE`

src/zh/breaking-changes/emits-option.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Vue 3 现在提供一个 `emits` 选项,和现有的 `props` 选项类似。
4949

5050
该选项也可以接收一个对象,该对象允许开发者定义传入事件参数的验证器,和 `props` 定义里的验证器类似。
5151

52-
更多信息请参阅[这部分特性的 API 文档](../../api/options-data.md#emits)
52+
更多信息请参阅[这部分特性的 API 文档](https://cn.vuejs.org/api/options-state.html#emits)
5353

5454
## 迁移策略
5555

src/zh/breaking-changes/events-api.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export default {
5858

5959
## 迁移策略
6060

61-
[迁移构建开关:`INSTANCE_EVENT_EMITTER`](migration-build.html#兼容性配置)
61+
[迁移构建开关:`INSTANCE_EVENT_EMITTER`](../migration-build.html#兼容性配置)
6262

6363
在 Vue 3 中,借助这些 API 从一个组件内部监听其自身触发的事件已经不再可能了。该用例没有办法迁移。
6464

@@ -97,8 +97,8 @@ export default {
9797

9898
在绝大多数情况下,不鼓励使用全局的事件总线在组件之间进行通信。虽然在短期内往往是最简单的解决方案,但从长期来看,它维护起来总是令人头疼。根据具体情况来看,有多种事件总线的替代方案:
9999

100-
* [Prop](/guide/component-basics.html#passing-data-to-child-components-with-props)[事件](/guide/component-basics.html#listening-to-child-components-events)应该是父子组件之间沟通的首选。兄弟节点可以通过它们的父节点通信。
101-
* [Provide 和 inject](/guide/component-provide-inject.html) 允许一个组件与它的插槽内容进行通信。这对于总是一起使用的紧密耦合的组件非常有用。
102-
* `provide`/`inject` 也能够用于组件之间的远距离通信。它可以帮助避免“prop 逐级透传”,即 prop 需要通过许多层级的组件传递下去,但这些组件本身可能并不需要那些 prop。
100+
* Props 和 事件 应该是父子组件之间沟通的首选。兄弟节点可以通过它们的父节点通信。
101+
* `provide` / `inject` 允许一个组件与它的插槽内容进行通信。这对于总是一起使用的紧密耦合的组件非常有用。
102+
* `provide` / `inject` 也能够用于组件之间的远距离通信。它可以帮助避免“prop 逐级透传”,即 prop 需要通过许多层级的组件传递下去,但这些组件本身可能并不需要那些 prop。
103103
* Prop 逐级透传也可以通过重构以使用插槽来避免。如果一个中间组件不需要某些 prop,那么表明它可能存在关注点分离的问题。在该类组件中使用 slot 可以允许父节点直接为它创建内容,因此 prop 可以被直接传递而不需要中间组件的参与。
104-
* [全局状态管理](/guide/state-management.html),比如 [Vuex](https://next.vuex.vuejs.org/zh/index.html)
104+
* [全局状态管理](https://cn.vuejs.org/guide/scaling-up/state-management.html),比如 [Pinia](https://pinia.vuejs.org/zh/index.html)

src/zh/breaking-changes/filters.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ badges:
7373

7474
我们建议用计算属性或方法代替过滤器,而不是使用过滤器。
7575

76-
[迁移构建开关:](migration-build.html#兼容性配置)
76+
[迁移构建开关:](../migration-build.html#兼容性配置)
7777

7878
- `FILTERS`
7979
- `COMPILER_FILTERS`
@@ -82,7 +82,7 @@ badges:
8282

8383
如果在应用中全局注册了过滤器,那么在每个组件中用计算属性或方法调用来替换它可能就没那么方便了。
8484

85-
取而代之的是,你可以通过[全局属性](../../api/application-config.html#globalproperties)以让它能够被所有组件使用到:
85+
取而代之的是,你可以通过[全局属性](https://cn.vuejs.org/api/application.html#app-config-globalproperties)以让它能够被所有组件使用到:
8686

8787
```js
8888
// main.js

src/zh/breaking-changes/functional-components.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,6 @@ export default {
115115

116116
有关新的函数式组件的用法和对渲染函数的更改的详细信息,请参考:
117117

118-
- [迁移:渲染函数](/guide/migration/render-function-api.html)
119-
- [指南:渲染函数](/guide/render-function.html)
120-
- [迁移构建开关:`COMPONENT_FUNCTIONAL`](migration-build.html#兼容性配置)
118+
- [迁移:渲染函数](./render-function-api.html)
119+
- [指南:渲染函数](https://cn.vuejs.org/guide/extras/render-function.html#render-functions-jsx)
120+
- [迁移构建开关:`COMPONENT_FUNCTIONAL`](../migration-build.html#兼容性配置)

src/zh/breaking-changes/global-api-treeshaking.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Vue.nextTick(() => {
1717
})
1818
```
1919

20-
或者,如果你曾经对涉及[异步组件](/guide/component-dynamic-async.html)的应用进行单元测试,那么你很可能编写过以下内容:
20+
或者,如果你曾经对涉及[异步组件](https://v2.cn.vuejs.org/v2/guide/components-dynamic-async.html)的应用进行单元测试,那么你很可能编写过以下内容:
2121

2222
```js
2323
import { shallowMount } from '@vue/test-utils'
@@ -110,7 +110,7 @@ export function render() {
110110
有了全局 tree-shaking 后,用户只需为他们实际使用到的功能“买单”。更棒的是,因为可选特性不会增加未使用它们的应用的打包产物大小,以后在追加核心功能时,即使对框架大小有所顾虑,它也将不再那么重要了。
111111

112112
:::warning 重要
113-
以上仅适用于 [ES 模块构建版本](/guide/installation.html#对不同构建版本的解释),用于支持 tree-shaking 的打包工具——UMD 构建仍然包括所有特性,并暴露 Vue 全局变量上的所有内容 (编译器将生成适当的输出以从该全局变量上使用 API,而不是导入)。
113+
以上仅适用于 [ES 模块构建版本](https://github.com/vuejs/core/tree/master/packages/vue#which-dist-file-to-use),用于支持 tree-shaking 的打包工具——UMD 构建仍然包括所有特性,并暴露 Vue 全局变量上的所有内容 (编译器将生成适当的输出以从该全局变量上使用 API,而不是导入)。
114114
:::
115115

116116
## 插件中的用法

src/zh/breaking-changes/global-api.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ import { createApp } from 'vue'
6565
const app = createApp({})
6666
```
6767

68-
如果你使用的是 Vue 的 [CDN](/guide/installation.html#cdn) 构建版本,那么 `createApp` 将通过全局的 `Vue` 对象暴露。
68+
如果你使用的是 Vue 的 [CDN](./introduction.html#cdn) 构建版本,那么 `createApp` 将通过全局的 `Vue` 对象暴露。
6969

7070
```js
7171
const { createApp } = Vue
@@ -87,15 +87,15 @@ const app = createApp({})
8787
| Vue.prototype | app.config.globalProperties ([见下方](#vue-prototype-替换为-config-globalproperties)) |
8888
| Vue.extend | *移除* ([见下方](#vue-extend-移除)) |
8989

90-
所有其他不全局改变行为的全局 API 现在都是具名导出,文档见[全局 API Treeshaking](/guide/migration/global-api-treeshaking.html)
90+
所有其他不全局改变行为的全局 API 现在都是具名导出,文档见[全局 API Treeshaking](./global-api-treeshaking.html)
9191

9292
### `config.productionTip` 移除
9393

9494
在 Vue 3.x 中,“使用生产版本”提示仅在使用“dev + full build”(包含运行时编译器并有警告的构建版本) 时才会显示。
9595

9696
对于 ES 模块构建版本,由于它们是与打包器一起使用的,而且在大多数情况下,CLI 或脚手架已经正确地配置了生产环境,所以本提示将不再出现。
9797

98-
[迁移构建开关:`CONFIG_PRODUCTION_TIP`](migration-build.html#兼容性配置)
98+
[迁移构建开关:`CONFIG_PRODUCTION_TIP`](../migration-build.html#兼容性配置)
9999

100100
### `config.ignoredElements` 替换为 `config.isCustomElement`
101101

@@ -118,13 +118,13 @@ app.config.compilerOptions.isCustomElement = tag => tag.startsWith('ion-')
118118
- 这将是 Vue CLI 配置中新的顶层选项。
119119
:::
120120

121-
[迁移构建开关:`CONFIG_IGNORED_ELEMENTS`](migration-build.html#兼容性配置)
121+
[迁移构建开关:`CONFIG_IGNORED_ELEMENTS`](../migration-build.html#兼容性配置)
122122

123123
### `Vue.prototype` 替换为 `config.globalProperties`
124124

125125
在 Vue 2 中, `Vue.prototype` 通常用于添加所有组件都能访问的 property。
126126

127-
在 Vue 3 中与之对应的是 [`config.globalProperties`](/api/application-config.html#globalproperties)。这些 property 将被复制到应用中,作为实例化组件的一部分。
127+
在 Vue 3 中与之对应的是 [`config.globalProperties`](https://cn.vuejs.org/api/application-config.html#globalproperties)。这些 property 将被复制到应用中,作为实例化组件的一部分。
128128

129129
```js
130130
// 之前 - Vue 2
@@ -139,7 +139,7 @@ app.config.globalProperties.$http = () => {}
139139

140140
使用 `provide` ([稍后](#provide-inject)会讨论) 时,也应考虑作为 `globalProperties` 的替代品。
141141

142-
[迁移构建开关:`GLOBAL_PROTOTYPE`](migration-build.html#兼容性配置)
142+
[迁移构建开关:`GLOBAL_PROTOTYPE`](../migration-build.html#兼容性配置)
143143

144144
### `Vue.extend` 移除
145145

@@ -186,9 +186,9 @@ Vue.createApp(Profile).mount('#mount-point')
186186

187187
#### 组件继承
188188

189-
在 Vue 3 中,我们强烈建议使用 [组合式 API](/api/composition-api.html) 来替代继承与 mixin。如果因为某种原因仍然需要使用组件继承,你可以使用 [`extends` 选项](/api/options-composition.html#extends) 来代替 `Vue.extend`
189+
在 Vue 3 中,我们强烈建议使用 [组合式 API](https://cn.vuejs.org/api/composition-api.html) 来替代继承与 mixin。如果因为某种原因仍然需要使用组件继承,你可以使用 [`extends` 选项](https://cn.vuejs.org/api/options-composition.html#extends) 来代替 `Vue.extend`
190190

191-
[迁移构建开关:`GLOBAL_EXTEND`](migration-build.html#兼容性配置)
191+
[迁移构建开关:`GLOBAL_EXTEND`](../migration-build.html#兼容性配置)
192192

193193
### 插件开发者须知
194194

@@ -243,7 +243,7 @@ app.directive('focus', {
243243
app.mount('#app')
244244
```
245245

246-
[迁移构建开关:`GLOBAL_MOUNT`](migration-build.html#兼容性配置)
246+
[迁移构建开关:`GLOBAL_MOUNT`](../migration-build.html#兼容性配置)
247247

248248
## Provide / Inject
249249

src/zh/breaking-changes/index.md

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,68 @@
44

55
虽然 Vue 看起来已经发生了很多变化,但您所了解和喜爱的 Vue 的很多东西仍然没有变;但我们希望尽可能完整的为每个记录的更改提供详细的解释和示例。
66

7-
<!-- TODO -->
7+
8+
## 详情说明
9+
10+
### 全局API
11+
12+
- [全局 Vue API 更改为使用应用程序实例](./global-api.html)
13+
- [全局和内部 API 都经过了重构,现已支持 TreeShaking (摇树优化)](./global-api-treeshaking.html)
14+
15+
16+
17+
### 模板指令
18+
19+
- [`v-model` 指令在组件上的使用已经被重新设计,替换掉了 `v-bind.sync`](./v-model.html)
20+
- [`<template v-for>` 和没有 `v-for` 的节点身上使用 `key` 发生了变化 ](./key-attribute.html)
21+
- [`v-if` and `v-for` 在同一个元素身上使用时的优先级发生了变化](./v-if-v-for.html)
22+
- [`v-bind="object"` 现在是顺序敏感的](./v-bind.html)
23+
- [`v-on:event.native` 事件修饰符已经被移除](./v-on-native-modifier-removed)
24+
25+
26+
27+
### 组件
28+
29+
- [函数式组件只能通过纯函数进行创建](./functional-components.html)
30+
- [单文件组件 (SFC) `<template>` 标签的 `functional` attribute 和函数式组件的 `functional` 选项已被移除](./functional-components.html)
31+
- [异步组件现在需要通过 `defineAsyncComponent` 方法进行创建](./async-components.html)
32+
- [组件事件现在应该使用 `emits` 选项进行声明](./emits-option.html)
33+
34+
### 渲染函数
35+
36+
- [渲染函数 API 更改](./render-function-api.html)
37+
- [`$scopedSlots` property 已移除,所有插槽都通过 `$slots` 作为函数暴露](./slots-unification.html)
38+
- [`$listeners` 被移除或整合到 `$attrs`](./listeners-removed)
39+
- [`$attrs` 现在包含 `class``style` attribute](./attrs-includes-class-style.md)
40+
41+
### 自定义元素
42+
43+
- [自定义元素检测现在在模板编译时执行](./custom-elements-interop.html)
44+
- [特殊的 `is` attribute 的使用被严格限制在被保留的 `<component>` 标签中](./custom-elements-interop.html#定制内置元素)
45+
46+
### 其他小改变
47+
48+
- `destroyed` 生命周期选项被重命名为 `unmounted`
49+
- `beforeDestroy` 生命周期选项被重命名为 `beforeUnmount`
50+
- [`default` prop 工厂函数不再可以访问 `this` 上下文](./props-default-this.html)
51+
- [自定义指令的 API 已更改为与组件生命周期一致,且 `binding.expression` 已移除](./custom-directives.html)
52+
- [`data` 选项应始终被声明为一个函数](./data-option.html)
53+
- [来自 mixin 的 `data` 选项现在为浅合并](./data-option.html#mixin-合并行为变更)
54+
- [Attribute 强制策略已更改](./attribute-coercion.html)
55+
- [一些过渡的 class 被重命名](./transition.html)
56+
- [`<TransitionGroup>` 不再默认渲染包裹元素](./transition-group.html)
57+
- [当侦听一个数组时,只有当数组被替换时,回调才会触发,如果需要在变更时触发,则必须指定 `deep` 选项](./watch.html)
58+
- 没有特殊指令的标记 (`v-if/else-if/else``v-for``v-slot`) 的 `<template>` 现在被视为普通元素,并将渲染为原生的 `<template>` 元素,而不是渲染其内部内容。
59+
- [已挂载的应用不会取代它所挂载的元素](./mount-changes.html)
60+
- [生命周期的 `hook:` 事件前缀改为 `vue:`](./vnode-lifecycle-events.html)
61+
62+
### 被移除的 API
63+
64+
- [`keyCode` 作为 `v-on` 修饰符的支持](./keycode-modifiers.html)
65+
- [$on、$off 和 $once 实例方法](./events-api.html)
66+
- [过滤器 (filter)](./filters.html)
67+
- [内联模板 attribute](./inline-template-attribute.html)
68+
- [`$children` 实例 property](./children.html)
69+
- [`propsData` 选项](./props-data.html)
70+
- `$destroy` 实例方法。用户不应再手动管理单个 Vue 组件的生命周期。
71+
- 全局函数 `set``delete` 以及实例方法 `$set``$delete`。基于代理的变化检测已经不再需要它们了。

0 commit comments

Comments
 (0)