From 556752878b4200d4305247c1c7fba7d8b220f73a Mon Sep 17 00:00:00 2001 From: rainmonG <494460151@qq.com> Date: Thu, 4 Apr 2024 23:41:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/component.md | 84 +++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/docs/component.md b/docs/component.md index fed51c32..ff89d0d6 100644 --- a/docs/component.md +++ b/docs/component.md @@ -23,7 +23,7 @@ outline: 'deep' ### setup 的含义 -Vue 3 的 Composition API 系列里,推出了一个全新的 `setup` 函数,它是一个组件选项,在创建组件之前执行,一旦 props 被解析,并作为组合式 API 的入口点。 +Vue 3 的 Composition API 系列里,推出了一个全新的 `setup` 函数,它是一个组件选项,在创建组件之前执行,一旦 props 被解析,便作为组合式 API 的入口点。 :::tip 说的通俗一点,就是在使用 Vue 3 生命周期的情况下,整个组件相关的业务代码,都可以放在 `setup` 里执行。 @@ -145,7 +145,7 @@ export default defineComponent({ ## 组件的生命周期 ~new -在了解了 Vue 3 组件的两个前置知识点后,不着急写组件,还需要先了解组件的生命周期,这个知识点非常重要,只有理解并记住组件的生命周期,才能够灵活的把控好每一处代码的执行,使程序的运行结果可以达到预期。 +在了解了 Vue 3 组件的两个前置知识点后,不着急写组件,还需要先了解组件的生命周期,这个知识点非常重要,只有理解并记住组件的生命周期,才能够灵活地把控好每一处代码的执行,使程序的运行结果可以达到预期。 ### 升级变化 @@ -181,7 +181,7 @@ Vue 3 组件默认支持 Options API ,而 Vue 2 可以通过 [@vue/composition | deactivated | onDeactivated | 切换组件后,原组件消失前执行 | :::tip -虽然 Vue 3 依然支持 Vue 2 的生命周期,但是不建议混搭使用,前期可以继续使用 Vue 2 的生命周期作为过度阶段慢慢适应,但还是建议尽快熟悉并完全使用 Vue 3 的生命周期编写组件。 +虽然 Vue 3 依然支持 Vue 2 的生命周期,但是不建议混搭使用,前期可以继续使用 Vue 2 的生命周期作为过渡阶段慢慢适应,但还是建议尽快熟悉并完全使用 Vue 3 的生命周期编写组件。 ::: ### 使用 3.x 的生命周期 @@ -223,7 +223,7 @@ export default defineComponent({ ## 组件的基本写法 -如果想在 Vue 2 里使用 TypeScript 编写组件,需要通过 Options API 的 [Vue.extend](https://v2.cn.vuejs.org/v2/api/#Vue-extend) 语法,或者是另外一种风格 [Class Component](https://class-component.vuejs.org) 的语法声明组件,其中为了更好的进行类型推导, Class Component 语法更受开发者欢迎。 +如果想在 Vue 2 里使用 TypeScript 编写组件,需要通过 Options API 的 [Vue.extend](https://v2.cn.vuejs.org/v2/api/#Vue-extend) 语法,或者是另外一种风格 [Class Component](https://class-component.vuejs.org) 的语法声明组件,其中为了更好地进行类型推导, Class Component 语法更受开发者欢迎。 但是 Class Component 语法和默认的组件语法相差较大,带来了一定的学习成本,对于平时编写 JavaScript 代码很少使用 Class 的开发者,适应时间应该也会比较长。 @@ -468,9 +468,9 @@ Vue 3 是使用了 `Proxy` API 的 `getter/setter` 来实现数据的响应性 主要原因在于 `Object.defineProperty` 有以下的不足: -1. 无法侦听数组下标的变化,通过 `arr[i] = newValue` 这样的操作无法实时响应 +1. 无法侦听数组下标的变化,对例如 `arr[i] = newValue` 这样的操作无法实时响应 2. 无法侦听数组长度的变化,例如通过 `arr.length = 10` 去修改数组长度,无法响应 -3. 只能侦听对象的属性,对于整个对象需要遍历,特别是多级对象更是要通过嵌套来深度侦听 +3. 只能侦听对象的属性,对于整个对象则需要遍历,针对多级对象更是要通过嵌套来深度侦听 4. 使用 `Object.assign()` 等方法给对象添加新属性时,也不会触发更新 5. 更多细节上的问题 … @@ -508,7 +508,7 @@ export default defineComponent({ `ref` 是最常用的一个响应式 API,它可以用来定义所有类型的数据,包括 Node 节点和组件。 -没错,在 Vue 2 常用的 `this.$refs.xxx` 来取代 `document.querySelector('.xxx')` 获取 Node 节点的方式,也是使用这个 API 来取代。 +没错,在 Vue 2 常用的以 `this.$refs.xxx` 取代 `document.querySelector('.xxx')` 来获取 Node 节点的方式,也是使用了这个 API 。 ### 类型声明 @@ -556,7 +556,7 @@ msg.value = 'Hello World!' console.log(msg.value) // Hello World! ``` -因为入参留空时,虽然指定了 `string` 类型,但实际上此时的值是 `undefined` ,因此实际上这个时候的 `msg.value` 是一个 `string | undefined` 的联合类型。 +因为入参留空时,虽然指定了 `string` 类型,但实际上此时的值是 `undefined` ,所以实际上这个时候的 `msg.value` 是一个 `string | undefined` 的联合类型。 对于声明时不知道是什么值,在某种条件下才进行初始化的情况,就可以省略其初始值,但是切记在调用该变量的时候对 `.value` 值进行有效性判断。 @@ -616,7 +616,7 @@ console.log(num.value) // 1 ### 变量的定义 -在了解了如何对 Ref 变量进行类型声明之后,面对不同的数据类型,相信都得心应手了!但不同类型的值之间还是有少许差异和注意事项,例如上文提及到该 API 可以用来定义所有类型的数据,包括 Node 节点和组件,具体可以参考下文的示例。 +在了解了如何对 Ref 变量进行类型声明之后,面对不同的数据类型,相信都得心应手了!但不同类型的值之间还是有少许差异和注意事项,例如上文提及该 API 可以用来定义所有类型的数据,包括 Node 节点和组件,具体可以参考下文的示例。 #### 基本类型 @@ -685,7 +685,7 @@ const memberList = ref([ ### DOM 元素与子组件 -除了可以定义数据,`ref` 也有熟悉的用途,就是用来挂载节点,也可以挂在子组件上,也就是对应在 Vue 2 时常用的 `this.$refs.xxx` 获取 DOM 元素信息的作用。 +除了可以定义数据,`ref` 也有熟悉的用途,就是用来挂载节点,也可以挂在子组件上,对应在 Vue 2 时常用的 `this.$refs.xxx` ,起到获取 DOM 元素信息的作用。 模板部分依然是熟悉的用法,在要引用的 DOM 上添加一个 `ref` 属性: @@ -694,14 +694,14 @@ const memberList = ref([

请留意该节点,有一个 ref 属性

- + ``` 在 `