diff --git a/src/guide/extras/render-function.md b/src/guide/extras/render-function.md index 00a99b5a..4c20e9d6 100644 --- a/src/guide/extras/render-function.md +++ b/src/guide/extras/render-function.md @@ -2,17 +2,17 @@ outline: deep --- -# 渲染函数 & JSX {#render-functions-jsx} +# 渲染函數 & JSX {#render-functions-jsx} -在绝大多数情况下,Vue 推荐使用模板语法来创建应用。然而在某些使用场景下,我们真的需要用到 JavaScript 完全的编程能力。这时**渲染函数**就派上用场了。 +在絕大多數情況下,Vue 推薦使用模板語法來創建應用。然而在某些使用場景下,我們真的需要用到 JavaScript 完全的編程能力。這時**渲染函數**就派上用場了。 -> 如果你还不熟悉虚拟 DOM 和渲染函数的概念的话,请确保先阅读[渲染机制](/guide/extras/rendering-mechanism)章节。 +> 如果你還不熟悉虛擬 DOM 和渲染函數的概念的話,請確保先閱讀[渲染機制](/guide/extras/rendering-mechanism)章節。 ## 基本用法 {#basic-usage} -### 创建 Vnodes {#creating-vnodes} +### 創建 Vnodes {#creating-vnodes} -Vue 提供了一个 `h()` 函数用于创建 vnodes: +Vue 提供了一個 `h()` 函數用於創建 vnodes: ```js import { h } from 'vue' @@ -26,42 +26,42 @@ const vnode = h( ) ``` -`h()` 是 **hyperscript** 的简称——意思是“能生成 HTML (超文本标记语言) 的 JavaScript”。这个名字来源于许多虚拟 DOM 实现默认形成的约定。一个更准确的名称应该是 `createVnode()`,但当你需要多次使用渲染函数时,一个简短的名字会更省力。 +`h()` 是 **hyperscript** 的簡稱——意思是“能生成 HTML (超文本標記語言) 的 JavaScript”。這個名字來源於許多虛擬 DOM 實現默認形成的約定。一個更準確的名稱應該是 `createVnode()`,但當你需要多次使用渲染函數時,一個簡短的名字會更省力。 -`h()` 函数的使用方式非常的灵活: +`h()` 函數的使用方式非常的靈活: ```js -// 除了类型必填以外,其他的参数都是可选的 +// 除了類型必填以外,其他的參數都是可選的 h('div') h('div', { id: 'foo' }) -// attribute 和 property 都能在 prop 中书写 -// Vue 会自动将它们分配到正确的位置 +// attribute 和 property 都能在 prop 中書寫 +// Vue 會自動將它們分配到正確的位置 h('div', { class: 'bar', innerHTML: 'hello' }) -// 像 `.prop` 和 `.attr` 这样的的属性修饰符 -// 可以分别通过 `.` 和 `^` 前缀来添加 +// 像 `.prop` 和 `.attr` 這樣的的屬性修飾符 +// 可以分別通過 `.` 和 `^` 前綴來添加 h('div', { '.name': 'some-name', '^width': '100' }) -// 类与样式可以像在模板中一样 -// 用数组或对象的形式书写 +// 類與樣式可以像在模板中一樣 +// 用數組或對象的形式書寫 h('div', { class: [foo, { bar }], style: { color: 'red' } }) -// 事件监听器应以 onXxx 的形式书写 +// 事件監聽器應以 onXxx 的形式書寫 h('div', { onClick: () => {} }) -// children 可以是一个字符串 +// children 可以是一個字符串 h('div', { id: 'foo' }, 'hello') -// 没有 props 时可以省略不写 +// 沒有 props 時可以省略不寫 h('div', 'hello') h('div', [h('span', 'hello')]) -// children 数组可以同时包含 vnodes 与字符串 +// children 數組可以同時包含 vnodes 與字符串 h('div', ['hello', h('span', 'hello')]) ``` -得到的 vnode 为如下形式: +得到的 vnode 為如下形式: ```js const vnode = h('div', { id: 'foo' }, []) @@ -72,15 +72,15 @@ vnode.children // [] vnode.key // null ``` -::: warning 注意事项 -完整的 `VNode` 接口包含其他内部属性,但是强烈建议避免使用这些没有在这里列举出的属性。这样能够避免因内部属性变更而导致的不兼容性问题。 +::: warning 注意事項 +完整的 `VNode` 接口包含其他內部屬性,但是強烈建議避免使用這些沒有在這裡列舉出的屬性。這樣能夠避免因內部屬性變更而導致的不兼容性問題。 ::: -### 声明渲染函数 {#declaring-render-function} +### 聲明渲染函數 {#declaring-render-function}