diff --git a/src/api/options-lifecycle-hooks.md b/src/api/options-lifecycle-hooks.md
index 6014a4c47..b5f5a9d5b 100644
--- a/src/api/options-lifecycle-hooks.md
+++ b/src/api/options-lifecycle-hooks.md
@@ -6,9 +6,9 @@
## beforeCreate
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
@@ -16,9 +16,9 @@
## created
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),property 和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,`$el` property 目前尚不可用。
@@ -26,21 +26,21 @@
## beforeMount
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
在挂载开始之前被调用:相关的 `render` 函数首次被调用。
- **该钩子在服务器端渲染期间不被调用。**
+ **该钩子在服务器端渲染期间不被调用**。
- **参考**[生命周期图示](../guide/instance.html#lifecycle-diagram)
## mounted
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
实例被挂载后调用,这时 `Vue.createApp({}).mount()` 被新创建的 `vm.$el` 替换了。如果根实例挂载到了一个文档内的元素上,当 mounted 被调用时 `vm.$el` 也在文档内。
@@ -54,27 +54,27 @@
}
```
- **该钩子在服务器端渲染期间不被调用。**
+ **该钩子在服务器端渲染期间不被调用**。
- **参考**[生命周期图示](../guide/instance.html#lifecycle-diagram)
## beforeUpdate
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。
- **该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行。**
+ **该钩子在服务器端渲染期间不被调用,因为只有初次渲染会在服务端进行**。
- **参考**[生命周期图示](../guide/instance.html#lifecycle-diagram)
## updated
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
@@ -90,65 +90,65 @@
}
```
- **该钩子在服务器端渲染期间不被调用。**
+ **该钩子在服务器端渲染期间不被调用**。
- **参考**[生命周期图示](../guide/instance.html#lifecycle-diagram)
## activated
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
被 keep-alive 缓存的组件激活时调用。
- **该钩子在服务器端渲染期间不被调用。**
+ **该钩子在服务器端渲染期间不被调用**。
- **参考**
- [动态组件 - keep-alive](../guide/component-basics.html#keep-alive)
## deactivated
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
被 keep-alive 缓存的组件停用时调用。
- **该钩子在服务器端渲染期间不被调用。**
+ **该钩子在服务器端渲染期间不被调用**。
- **参考**
- [动态组件 - keep-alive](../guide/component-basics.html#keep-alive)
## beforeUnmount
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
在卸载组件实例之前调用。在这个阶段,实例仍然是完全正常的。
- **该钩子在服务器端渲染期间不被调用。**
+ **该钩子在服务器端渲染期间不被调用**。
- **参考**[生命周期图示](../guide/instance.html#lifecycle-diagram)
## unmounted
-- **类型:**`Function`
+- **类型**:`Function`
-- **详细:**
+- **详细**:
卸载组件实例后调用。调用此钩子时,组件实例的所有指令都被解除绑定,所有事件侦听器都被移除,所有子组件实例被卸载。
- **该钩子在服务器端渲染期间不被调用。**
+ **该钩子在服务器端渲染期间不被调用**。
- **参考**[生命周期图示](../guide/instance.html#lifecycle-diagram)
## errorCaptured
-- **类型:**`(err: Error, instance: Component, info: string) => ?boolean`
+- **类型**:`(err: Error, instance: Component, info: string) => ?boolean`
-- **详细:**
+- **详细**:
当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回 `false` 以阻止该错误继续向上传播。
@@ -168,13 +168,13 @@
## renderTracked
-- **类型:**`(e: DebuggerEvent) => void`
+- **类型**:`(e: DebuggerEvent) => void`
-- **详细:**
+- **详细**:
跟踪虚拟 DOM 重新渲染时调用。钩子接收 `debugger event` 作为参数。此事件告诉你哪个操作跟踪了组件以及该操作的目标对象和键。
-- **用法:**
+- **用法**:
```html
@@ -214,13 +214,13 @@
## renderTriggered
-- **类型:**`(e: DebuggerEvent) => void`
+- **类型**:`(e: DebuggerEvent) => void`
-- **详细:**
+- **详细**:
当虚拟 DOM 重新渲染为 triggered.Similarly 为[`renderTracked`](#rendertracked),接收 `debugger event` 作为参数。此事件告诉你是什么操作触发了重新渲染,以及该操作的目标对象和键。
-- **用法:**
+- **用法**:
```html
diff --git a/src/api/options-misc.md b/src/api/options-misc.md
index bcf458f78..b9241e043 100644
--- a/src/api/options-misc.md
+++ b/src/api/options-misc.md
@@ -2,11 +2,11 @@
## name
-- **类型:**`string`
+- **类型**:`string`
-- **限制:**只有作为组件选项时起作用。
+- **限制**:只有作为组件选项时起作用。
-- **详细:**
+- **详细**:
允许组件模板递归地调用自身。注意,组件在全局用 `Vue.createApp({}).component({})` 注册时,全局 ID 自动作为组件的 name。
@@ -14,17 +14,17 @@
## inheritAttrs
-- **类型:**`boolean`
+- **类型**:`boolean`
-- **默认:**`true`
+- **默认**:`true`
-- **详细:**
+- **详细**:
默认情况下父作用域的不被认作 props 的 attribute 绑定 (attribute bindings) 将会“回退”且作为普通的 HTML attribute 应用在子组件的根元素上。当撰写包裹一个目标元素或另一个组件的组件时,这可能不会总是符合预期行为。通过设置 `inheritAttrs` 到 `false`,这些默认行为将会被去掉。而通过实例 property `$attrs` 可以让这些 attribute 生效,且可以通过 `v-bind` 显性的绑定到非根元素上。
注意:这个选项**不**影响 `class` 和 `style` 绑定。
-- **用法:**
+- **用法**:
```js
app.component('base-input', {
diff --git a/src/api/refs-api.md b/src/api/refs-api.md
index cd95df94c..92d716777 100644
--- a/src/api/refs-api.md
+++ b/src/api/refs-api.md
@@ -6,7 +6,7 @@
接受一个内部值并返回一个响应式且可变的 ref 对象。ref 对象具有指向内部值的单个 property `.value`。
-**示例:**
+**示例**:
```js
const count = ref(0)
@@ -18,7 +18,7 @@ console.log(count.value) // 1
如果将对象分配为 ref 值,则可以通过 [reactive](./basic-reactivity.html#reactive) 方法使该对象具有高度的响应式。
-**类型声明:**
+**类型声明**:
```ts
interface Ref
{
@@ -183,7 +183,7 @@ Checks if a value is a ref object。
}
```
-**Typing:**
+**Typing**:
```ts
function customRef(factory: CustomRefFactory): Ref
diff --git a/src/api/special-attributes.md b/src/api/special-attributes.md
index 604a24bb3..ac01e8783 100644
--- a/src/api/special-attributes.md
+++ b/src/api/special-attributes.md
@@ -2,7 +2,7 @@
## key
-- **预期:**`number | string`
+- **预期**:`number | string`
`key` 的特殊 attribute 主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除/销毁 key 不存在的元素。
@@ -33,7 +33,7 @@
## ref
-- **预期:**`string | Function`
+- **预期**:`string | Function`
`ref` 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 `$refs` 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例:
@@ -56,7 +56,7 @@
## is
-- **预期:**`string | Object (component’s options object)`
+- **预期**:`string | Object (component’s options object)`
使用[动态组件](../guide/component-dynamic-async.html)。
diff --git a/src/guide/composition-api-introduction.md b/src/guide/composition-api-introduction.md
index 01bb8c88b..a80df5f8b 100644
--- a/src/guide/composition-api-introduction.md
+++ b/src/guide/composition-api-introduction.md
@@ -298,7 +298,7 @@ export default {
有关 `watch` 的详细信息,请参阅我们的[深入指南](composition-api-introduction.html)。
-**现在我们将其应用到我们的示例中:**
+**现在我们将其应用到我们的示例中**:
```js
// src/components/UserRepositories.vue `setup` function
@@ -434,7 +434,7 @@ export default function useRepositoryNameSearch(repositories) {
}
```
-**现在在单独的文件中有了这两个功能,我们就可以开始在组件中使用它们了。以下是如何做到这一点:**
+**现在在单独的文件中有了这两个功能,我们就可以开始在组件中使用它们了。以下是如何做到这一点**:
```js
// src/components/UserRepositories.vue
diff --git a/src/guide/contributing/writing-guide.md b/src/guide/contributing/writing-guide.md
index 647b6c34b..5ad344e24 100644
--- a/src/guide/contributing/writing-guide.md
+++ b/src/guide/contributing/writing-guide.md
@@ -79,7 +79,7 @@
- **在发布之前,请仅等到某事为“好”为止**。社区将帮助你将其推向更深的链。
- **收到反馈时,尽量不要防御**我们的写作对我们来说可能是非常私人的,但是如果我们对帮助我们做得更好的人感到不满,他们要么停止提供反馈,要么开始限制他们提供的反馈种类。
- **在向他人展示之前,请先阅读自己的作品**。如果你显示某人的拼写/语法错误很多,你将获得有关拼写语法/错误的反馈,而不是获得有关写作是否达到目标的更有价值的注释。
-- **当你要求人们提供反馈时,请告诉审阅者以下内容:**
+- **当你要求人们提供反馈时,请告诉审阅者以下内容**:
- **你正在尝试做**
- **你的恐惧是**
- **你想要达到的平衡**
diff --git a/src/guide/migration/custom-elements-interop.md b/src/guide/migration/custom-elements-interop.md
index 9fbc48199..b36ef1eae 100644
--- a/src/guide/migration/custom-elements-interop.md
+++ b/src/guide/migration/custom-elements-interop.md
@@ -7,9 +7,9 @@ badges:
## 概览
-- **BREAKING:**自定义元素白名单现在在模板编译期间执行,应该通过编译器选项而不是运行时配置来配置。
-- **BREAKING:**特定 `is` prop 用法仅限于保留的 `` 标记
-- **NEW:**有了新的 `v-is` 指令来支持 2.x 用例,其中在原生元素上使用了 `v-is` 来处理原生 HTML 解析限制。
+- **重大变更**:自定义元素白名单现在在模板编译期间执行,应该通过编译器选项而不是运行时配置来配置。
+- **重大变更**:特定 `is` prop 用法仅限于保留的 `` 标记
+- **新**:有了新的 `v-is` 指令来支持 2.x 用例,其中在原生元素上使用了 `v-is` 来处理原生 HTML 解析限制。
## 自主定制元素
diff --git a/src/guide/migration/functional-components.md b/src/guide/migration/functional-components.md
index 4568ff789..ee0203fdf 100644
--- a/src/guide/migration/functional-components.md
+++ b/src/guide/migration/functional-components.md
@@ -11,8 +11,8 @@ badges:
- 在 3.x 中,功能性组件 2.x 的性能提升可以忽略不计,因此我们建议只使用有状态的组件
- 功能组件只能使用接收 `props` 和 `context` 的普通函数创建 (即:`slots`,`attrs`,`emit`)。
-- **重大变更:**`functional` attribute 在单文件组件 (SFC) `` 已被移除
-- **重大变更:**`{ functional: true }` 选项在通过函数创建组件已被移除
+- **重大变更**:`functional` attribute 在单文件组件 (SFC) `` 已被移除
+- **重大变更**:`{ functional: true }` 选项在通过函数创建组件已被移除
更多信息,请继续阅读!
diff --git a/src/guide/testing.md b/src/guide/testing.md
index a4fdd2e29..835c4a9b6 100644
--- a/src/guide/testing.md
+++ b/src/guide/testing.md
@@ -40,7 +40,7 @@
Jest 是一个专注于简易性的 JavaScript 测试框架。一个其独特的功能是可以为测试生成快照 (snapshot),以提供另一种验证应用单元的方法。
-**资料:**
+**资料**:
- [Jest 官网](https://jestjs.io/zh-Hans/)
- [Vue CLI 官方插件 - Jest](https://cli.vuejs.org/core-plugins/unit-jest.html)
@@ -49,7 +49,7 @@ Jest 是一个专注于简易性的 JavaScript 测试框架。一个其独特的
Mocha 是一个专注于灵活性的 JavaScript 测试框架。因为其灵活性,它允许你选择不同的库来满足诸如侦听 (如 Sinon) 和断言 (如 Chai) 等其它常见的功能。另一个 Mocha 独特的功能是它不止可以在 Node.js 里运行测试,还可以在浏览器里运行测试。
-**资料:**
+**资料**:
- [Mocha 官网](https://mochajs.org)
- [Vue CLI 官方插件 - Mocha](https://cli.vuejs.org/core-plugins/unit-mocha.html)
@@ -80,7 +80,7 @@ Vue Testing Library 是一组专注于测试组件而不依赖实现细节的工
它的指导原则是,与软件使用方式相似的测试越多,它们提供的可信度就越高。
-**资料:**
+**资料**:
- [Vue Testing Library 官网](https://testing-library.com/docs/vue-testing-library/intro)
@@ -88,7 +88,7 @@ Vue Testing Library 是一组专注于测试组件而不依赖实现细节的工
Vue Test Utils 是官方的偏底层的组件测试库,它是为用户提供对 Vue 特定 API 的访问而编写的。如果你对测试 Vue 应用不熟悉,我们建议你使用 Vue Testing Library,它是 Vue Test Utils 的抽象。
-**资源:**
+**资源**:
- [Vue Test Utils 官方文档](https://vue-test-utils.vuejs.org)
- [Vue 测试指南](https://lmiller1990.github.io/vue-testing-handbook/zh-CN/) by Lachlan Miller
@@ -129,7 +129,7 @@ Vue Test Utils 是官方的偏底层的组件测试库,它是为用户提供
Cypress.io 是一个测试框架,旨在通过使开发者能够可靠地测试他们的应用,同时提供一流的开发者体验,来提高开发者的生产率。
-**资料:**
+**资料**:
- [Cypress 官网](https://www.cypress.io)
- [Vue CLI 官方插件 - Cypress](https://cli.vuejs.org/core-plugins/e2e-cypress.html)
@@ -139,7 +139,7 @@ Cypress.io 是一个测试框架,旨在通过使开发者能够可靠地测试
Nightwatch.js 是一个端到端测试框架,可用于测试 web 应用和网站,以及 Node.js 单元测试和集成测试。
-**资料:**
+**资料**:
- [Nightwatch 官网](https://nightwatchjs.org)
- [Vue CLI 官方插件 - Nightwatch](https://cli.vuejs.org/core-plugins/e2e-nightwatch.html)
@@ -148,7 +148,7 @@ Nightwatch.js 是一个端到端测试框架,可用于测试 web 应用和网
Puppeteer 是一个 Node.js 库,它提供高阶 API 来控制浏览器,并可以与其他测试运行程序 (例如 Jest) 配对来测试应用。
-**资料:**
+**资料**:
- [Puppeteer 官网](https://pptr.dev)
@@ -156,6 +156,6 @@ Puppeteer 是一个 Node.js 库,它提供高阶 API 来控制浏览器,并
TestCafe 是一个基于端到端的 Node.js 框架,旨在提供简单的设置,以便开发者能够专注于创建易于编写和可靠的测试。
-**资料:**
+**资料**:
- [TestCafe 官网](https://devexpress.github.io/testcafe/)
diff --git a/src/style-guide/README.md b/src/style-guide/README.md
index 23ff05679..c1ac20026 100644
--- a/src/style-guide/README.md
+++ b/src/style-guide/README.md
@@ -37,7 +37,7 @@ sidebar: auto
### 组件名为多个单词必要
-**组件名应该始终是多个单词的,根组件 `App` 以及 ``、`` 之类的 Vue 内置组件除外。**
+**组件名应该始终是多个单词的,根组件 `App` 以及 ``、`` 之类的 Vue 内置组件除外**。
这样做可以避免跟现有的以及未来的 HTML 元素[相冲突](http://w3c.github.io/webcomponents/spec/custom/#valid-custom-element-name),因为所有的 HTML 元素名称都是单个单词的。
@@ -188,7 +188,7 @@ data() {
### 避免 `v-if` 和 `v-for` 用在一起必要
-**永远不要把 `v-if` 和 `v-for` 同时用在同一个元素上。**
+**永远不要把 `v-if` 和 `v-for` 同时用在同一个元素上**。
一般我们在两种常见的情况下会倾向于这样做:
@@ -264,7 +264,7 @@ computed: {
```
-更新为:
+更新为:
``` html
@@ -337,11 +337,11 @@ computed: {
### 为组件样式设置作用域必要
-**对于应用来说,顶级 `App` 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的。**
+**对于应用来说,顶级 `App` 组件和布局组件中的样式可以是全局的,但是其它所有组件都应该是有作用域的**。
这条规则只和[单文件组件](../guide/single-file-components.html)有关。你*不一定*要使用 [`scoped` attribute](https://vue-loader.vuejs.org/en/features/scoped-css.html)。设置作用域也可以通过 [CSS Modules](https://vue-loader.vuejs.org/en/features/css-modules.html),那是一个基于 class 的类似 [BEM](http://getbem.com/) 的策略,当然你也可以使用其它的库或约定。
-**不管怎样,对于组件库,我们应该更倾向于选用基于 class 的策略而不是 `scoped` attribute。**
+**不管怎样,对于组件库,我们应该更倾向于选用基于 class 的策略而不是 `scoped` attribute**。
这让覆写内部样式更容易:使用了常人可理解的 class 名称且没有太高的选择器优先级,而且不太会导致冲突。
@@ -428,7 +428,7 @@ computed: {
### 私有 property 名必要
-**使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 `$_` 前缀。并附带一个命名空间以回避和其它作者的冲突 (比如 `$_yourPluginName_`)。**
+**使用模块作用域保持不允许外部访问的函数的私有性。如果无法做到这一点,就始终为插件、混入等不考虑作为对外公共 API 的自定义私有 property 使用 `$_` 前缀。并附带一个命名空间以回避和其它作者的冲突 (比如 `$_yourPluginName_`)**。
::: 详细
@@ -527,7 +527,7 @@ export default myGreatMixin
### 组件文件强烈推荐
-**只要有能够拼接文件的构建系统,就把每个组件单独分成文件。**
+**只要有能够拼接文件的构建系统,就把每个组件单独分成文件**。
当你需要编辑一个组件或查阅一个组件的用法时,可以更快速的找到它。
@@ -564,7 +564,7 @@ components/
### 单文件组件文件的大小写强烈推荐
-**[单文件组件](../guide/single-file-components.html)的文件名应该要么始终是单词大写开头 (PascalCase),要么始终是横线连接 (kebab-case)。**
+**[单文件组件](../guide/single-file-components.html)的文件名应该要么始终是单词大写开头 (PascalCase),要么始终是横线连接 (kebab-case)**。
单词大写开头对于代码编辑器的自动补全最为友好,因为这使得我们在 JS(X) 和模板中引用组件的方式尽可能的一致。然而,混用文件命名方式有的时候会导致大小写不敏感的文件系统的问题,这也是横线连接命名同样完全可取的原因。
@@ -598,7 +598,7 @@ components/
### 基础组件名强烈推荐
-**应用特定样式和约定的基础组件 (也就是展示类的、无逻辑的或无状态的组件) 应该全部以一个特定的前缀开头,比如 `Base`、`App` 或 `V`。**
+**应用特定样式和约定的基础组件 (也就是展示类的、无逻辑的或无状态的组件) 应该全部以一个特定的前缀开头,比如 `Base`、`App` 或 `V`**。
::: details 详解
@@ -674,7 +674,7 @@ components/
### 单组件名强烈推荐
-**只应该拥有单个活跃实例的组件应该以 `The` 前缀命名,以示其唯一性。**
+**只应该拥有单个活跃实例的组件应该以 `The` 前缀命名,以示其唯一性**。
这不意味着组件只可用于一个单页面,而是*每个页面*只使用一次。这些组件永远不接受任何 prop,因为它们是为你的应用定制的,而不是它们在你的应用中的上下文。如果你发现有必要添加 prop,那就表明这实际上是一个可复用的组件,只是*目前*在每个页面里只使用一次。
@@ -700,7 +700,7 @@ components/
### 紧密耦合的组件名强烈推荐
-**和父组件紧密耦合的子组件应该以父组件名作为前缀命名。**
+**和父组件紧密耦合的子组件应该以父组件名作为前缀命名**。
如果一个组件只在某个父组件的场景下有意义,这层关系应该体现在其名字上。因为编辑器通常会按字母顺序组织文件,所以这样做可以把相关联的文件排在一起。
@@ -716,7 +716,7 @@ components/
|- index.vue
```
-or:
+或者:
```
components/
@@ -770,7 +770,7 @@ components/
### 组件名中的单词顺序强烈推荐
-**组件名应该以高阶的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾。**
+**组件名应该以高阶的 (通常是一般化描述的) 单词开头,以描述性的修饰词结尾**。
::: details 详解
你可能会疑惑:
@@ -849,7 +849,7 @@ components/
### 自闭合组件强烈推荐
-**在[单文件组件](../guide/single-file-components.html)、字符串模板和 [JSX](../guide/render-function.html#JSX) 中没有内容的组件应该是自闭合的——但在 DOM 模板里永远不要这样做。**
+**在[单文件组件](../guide/single-file-components.html)、字符串模板和 [JSX](../guide/render-function.html#JSX) 中没有内容的组件应该是自闭合的——但在 DOM 模板里永远不要这样做**。
自闭合组件表示它们不仅没有内容,而且**刻意**没有内容。其不同之处就好像书上的一页白纸对比贴有“本页有意留白”标签的白纸。而且没有了额外的闭合标签,你的代码也更简洁。
@@ -885,7 +885,7 @@ components/
### 模板中的组件名大小写强烈推荐
-**对于绝大多数项目来说,在[单文件组件](../guide/single-file-components.html)和字符串模板中组件名应该总是 PascalCase 的——但是在 DOM 模板中总是 kebab-case 的。**
+**对于绝大多数项目来说,在[单文件组件](../guide/single-file-components.html)和字符串模板中组件名应该总是 PascalCase 的——但是在 DOM 模板中总是 kebab-case 的**。
PascalCase 相比 kebab-case 有一些优势:
@@ -939,7 +939,7 @@ PascalCase 相比 kebab-case 有一些优势:
### JS/JSX 中的组件名大小写强烈推荐
-**JS/[JSX](../guide/render-function.html#JSX) 中的组件名应该始终是 PascalCase 的,尽管在较为简单的应用中只使用 `app.component` 进行全局组件注册时,可以使用 kebab-case 字符串。**
+**JS/[JSX](../guide/render-function.html#JSX) 中的组件名应该始终是 PascalCase 的,尽管在较为简单的应用中只使用 `app.component` 进行全局组件注册时,可以使用 kebab-case 字符串**。
::: details 详解
@@ -1009,7 +1009,7 @@ export default {
### 完整单词的组件名强烈推荐
-**组件名应该倾向于完整单词而不是缩写。**
+**组件名应该倾向于完整单词而不是缩写**。
编辑器中的自动补全已经让书写长命名的代价非常之低了,而其带来的明确性却是非常宝贵的。不常用的缩写尤其应该避免。
@@ -1035,7 +1035,7 @@ components/
### Prop 名大小写强烈推荐
-**在声明 prop 的时候,其命名应该始终使用 camelCase,而在模板和 [JSX](../guide/render-function.html#JSX) 中应该始终使用 kebab-case。**
+**在声明 prop 的时候,其命名应该始终使用 camelCase,而在模板和 [JSX](../guide/render-function.html#JSX) 中应该始终使用 kebab-case**。
我们单纯的遵循每个语言的约定。在 JavaScript 中更自然的是 camelCase。而在 HTML 中则是 kebab-case。
@@ -1069,7 +1069,7 @@ props: {
### 多个 attribute 的元素强烈推荐
-**多个 attribute 的元素应该分多行撰写,每个 attribute 一行。**
+**多个 attribute 的元素应该分多行撰写,每个 attribute 一行**。
在 JavaScript 中,用多行分隔对象的多个 property 是很常见的最佳实践,因为这样更易读。模板和 [JSX](../guide/render-function.html#JSX) 值得我们做相同的考虑。
@@ -1106,7 +1106,7 @@ props: {
### 模板中简单的表达式强烈推荐
-**组件模板应该只包含简单的表达式,复杂的表达式则应该重构为计算属性或方法。**
+**组件模板应该只包含简单的表达式,复杂的表达式则应该重构为计算属性或方法**。
复杂表达式会让你的模板变得不那么声明式。我们应该尽量描述应该出现的*是*什么,而非如何计算那个值。而且计算属性和方法使得代码可以重用。
@@ -1144,7 +1144,7 @@ computed: {
### 简单的计算属性强烈推荐
-**应该把复杂计算属性分割为尽可能多的更简单的 property。**
+**应该把复杂计算属性分割为尽可能多的更简单的 property**。
::: details 详解
更简单、命名得当的计算属性是这样的:
@@ -1202,7 +1202,7 @@ computed: {
### 带引号的 attribute 值强烈推荐
-**非空 HTML attribute 值应该始终带引号 (单引号或双引号,选你 JS 里不用的那个)。**
+**非空 HTML attribute 值应该始终带引号 (单引号或双引号,选你 JS 里不用的那个)**。
在 HTML 中不带空格的 attribute 值是可以没有引号的,但这鼓励了大家在特征值里不写空格,导致可读性变差。
@@ -1232,7 +1232,7 @@ computed: {
### 指令缩写强烈推荐
-**指令缩写 (用 `:` 表示 `v-bind:`,`@` 表示 `v-on:` 和用 `#` 表示 `v-slot`) 应该要么都用要么都不用。**
+**指令缩写 (用 `:` 表示 `v-bind:`,`@` 表示 `v-on:` 和用 `#` 表示 `v-slot`) 应该要么都用要么都不用**。
反例
@@ -1319,7 +1319,7 @@ computed: {
### 组件/实例的选项的顺序推荐
-**组件/实例的选项应该有统一的顺序。**
+**组件/实例的选项应该有统一的顺序**。
这是我们推荐的组件选项默认顺序。它们被划分为几大类,所以你也能知道从插件里添加的新 property 应该放到哪里。
@@ -1372,7 +1372,7 @@ computed: {
### 元素 attribute 的顺序推荐
-**元素 (包括组件) 的 attribute 应该有统一的顺序。**
+**元素 (包括组件) 的 attribute 应该有统一的顺序**。
这是我们为组件选项推荐的默认顺序。它们被划分为几大类,所以你也能知道新添加的自定义 attribute 和指令应该放到哪里。
@@ -1414,7 +1414,7 @@ computed: {
### 组件/实例选项中的空行推荐
-**你可能想在多个 property 之间增加一个空行,特别是在这些选项一屏放不下,需要滚动才能都看到的时候。**
+**你可能想在多个 property 之间增加一个空行,特别是在这些选项一屏放不下,需要滚动才能都看到的时候**。
当你的组件开始觉得密集或难以阅读时,在多个 property 之间添加空行可以让其变得容易。在一些诸如 Vim 的编辑器里,这样格式化后的选项还能通过键盘被快速导航。
@@ -1479,7 +1479,7 @@ computed: {
### 单文件组件的顶级元素的顺序推荐
-**[单文件组件] (../guide/single-file-components.html)应该总是让 `