You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A single-page application is an application that loads a single HTML page and all the necessary assets (such as JavaScript and CSS) required for the application to run. Any interactions with the page or subsequent pages do not require a round trip to the server which means the page is not reloaded.
12
+
單頁應用程式會載入一個 HTML 頁面和其他所需要的資源(例如 JavaScript 和 CSS),之後在頁面或後續頁面上的互動都不需要往返伺服器,這表示該頁面不會被重新載入。
13
13
14
-
Though you may build a single-page application in React, it is not a requirement. React can also be used for enhancing small parts of existing websites with additional interactivity. Code written in React can coexist peacefully with markup rendered on the server by something like PHP, or with other client-side libraries. In fact, this is exactly how React is being used at Facebook.
These acronyms all refer to the most recent versions of the ECMAScript Language Specification standard, which the JavaScript language is an implementation of. The ES6 version (also known as ES2015) includes many additions to the previous versions such as: arrow functions, classes, template literals, `let`and`const`statements. You can learn more about specific versions [here](https://en.wikipedia.org/wiki/ECMAScript#Versions).
A JavaScript compiler takes JavaScript code, transforms it and returns JavaScript code in a different format. The most common use case is to take ES6 syntax and transform it into syntax that older browsers are capable of interpreting. [Babel](https://babeljs.io/)is the compiler most commonly used with React.
Bundlers take JavaScript and CSS code written as separate modules (often hundreds of them), and combine them together into a few files better optimized for the browsers. Some bundlers commonly used in React applications include [Webpack](https://webpack.js.org/)and[Browserify](http://browserify.org/).
Package managers are tools that allow you to manage dependencies in your project. [npm](https://www.npmjs.com/)and[Yarn](https://yarnpkg.com/)are two package managers commonly used in React applications. Both of them are clients for the same npm package registry.
CDN stands for Content Delivery Network. CDNs deliver cached, static content from a network of servers across the globe.
34
+
CDN 即是 內容傳遞網路。CDN 從全球各地的伺服器提供靜態內容的緩存。
35
35
36
36
## JSX {#jsx}
37
37
38
-
JSX is a syntax extension to JavaScript. It is similar to a template language, but it has full power of JavaScript. JSX gets compiled to `React.createElement()` calls which return plain JavaScript objects called "React elements". To get a basic introduction to JSX [see the docs here](/docs/introducing-jsx.html) and find a more in-depth tutorial on JSX [here](/docs/jsx-in-depth.html).
React DOM uses camelCase property naming convention instead of HTML attribute names. For example, `tabindex`becomes `tabIndex` in JSX. The attribute `class`is also written as `className` since `class` is a reserved word in JavaScript:
40
+
React DOM 使用 camelCase 來命名 HTML 屬性名稱。例如,`tabindex`在 JSX 中寫作 `tabIndex`。而 `class`因為是 JavaScript 中的保留字,所以寫作 `className`:
React elements are the building blocks of React applications. One might confuse elements with a more widely known concept of "components". An element describes what you want to see on the screen. React elements are immutable.
52
+
React element 是 React 應用程式的建構模塊。有人可能會將 element 跟更廣為人知的 component 概念混淆。element 描述你在屏幕上看到甚麼。React element 是不可變的。
53
53
54
54
```js
55
55
constelement=<h1>Hello, world</h1>;
56
56
```
57
57
58
-
Typically, elements are not used directly, but get returned from components.
React components are small, reusable pieces of code that return a React element to be rendered to the page. The simplest version of React component is a plain JavaScript function that returns a React element:
@@ -77,38 +77,38 @@ class Welcome extends React.Component {
77
77
}
78
78
```
79
79
80
-
Components can be broken down into distinct pieces of functionality and used within other components. Components can return other components, arrays, strings and numbers. A good rule of thumb is that if a part of your UI is used several times (Button, Panel, Avatar), or is complex enough on its own (App, FeedStory, Comment), it is a good candidate to be a reusable component. Component names should also always start with a capital letter (`<Wrapper/>`**not**`<wrapper/>`). See [this documentation](/docs/components-and-props.html#rendering-a-component) for more information on rendering components.
A component needs`state` when some data associated with it changes over time. For example, a `Checkbox` component might need `isChecked`in its state, and a `NewsFeed` component might want to keep track of `fetchedPosts`in its state.
The most important difference between `state`and`props`is that `props`are passed from a parent component, but`state`is managed by the component itself. A component cannot change its `props`, but it can change its `state`. To do so, it must call `this.setState()`. Only components defined as classes can have state.
For each particular piece of changing data, there should be just one component that "owns" it in its state. Don't try to synchronize states of two different components. Instead, [lift it up](/docs/lifting-state-up.html) to their closest shared ancestor, and pass it down as props to both of them.
Lifecycle methods are custom functionality that gets executed during the different phases of a component. There are methods available when the component gets created and inserted into the DOM ([mounting](/docs/react-component.html#mounting)), when the component updates, and when the component gets unmounted or removed from the DOM.
131
+
生命週期方法是用來在 component 不同階段來執行自訂功能。以下的事件都有生命週期方法:當 component 被建立和加入在 DOM 裏([mounting](/docs/react-component.html#mounting)),當 component 更新,以及從 DOM 中 unmount 或移除時。
React has two different approaches to dealing with form inputs.
135
+
React 有兩個不同的方案處理表格輸入。
136
136
137
-
An input form element whose value is controlled by React is called a *controlled component*. When a user enters data into a controlled component a change event handler is triggered and your code decides whether the input is valid (by re-rendering with the updated value). If you do not re-render then the form element will remain unchanged.
137
+
表格輸入 element 的值是由 React 來控制,就被稱為 *controlled component*。當用戶輸入數據到 controlled component,就會觸發一個 event handler,並且用你的代碼決定輸入是否有效(通過重新 render 更新後的數值)。如果你不重新 render,表格 element 將保持不變。
138
138
139
-
An*uncontrolled component*works like form elements do outside of React. When a user inputs data into a form field (an input box, dropdown, etc) the updated information is reflected without React needing to do anything. However, this also means that you can't force the field to have a certain value.
139
+
一個*uncontrolled component*就像表格 element 一樣在 React 以外工作。當用戶輸入數據到一個表格列(input box,dropdown 等)時,不需要 React 處理任何東西,更新的數據就會被反映出來。但同時這意味著你不能強迫表格列有特定的數值。
140
140
141
-
In most cases you should use controlled components.
141
+
在大多數的情況下你應用使用 controlled components。
142
142
143
143
## [Keys](/docs/lists-and-keys.html) {#keys}
144
144
145
-
A "key" is a special string attribute you need to include when creating arrays of elements. Keys help React identify which items have changed, are added, or are removed. Keys should be given to the elements inside an array to give the elements a stable identity.
145
+
「key」是一個特別的 string attribute ,你需要在建立 element array 時加上。Key 幫助 React 分辨那個 element 被更改,添加,或已移除。Key 應該放在 array element 的內部,使 element 有一個穩定的標記。
146
146
147
-
Keys only need to be unique among sibling elements in the same array. They don't need to be unique across the whole application or even a single component.
147
+
Key 只需要在同一個 array 的 sibling element 中是唯一的。它們不需要在整個應用程式或個別 component 中是唯一。
148
148
149
-
Don't pass something like `Math.random()`to keys. It is important that keys have a "stable identity" across re-renders so that React can determine when items are added, removed, or re-ordered. Ideally, keys should correspond to unique and stable identifiers coming from your data, such as `post.id`.
React supports a special attribute that you can attach to any component. The `ref`attribute can be an object created by [`React.createRef()` function](/docs/react-api.html#reactcreateref)or a callback function, or a string (in legacy API). When the `ref` attribute is a callback function, the function receives the underlying DOM element or class instance (depending on the type of element) as its argument. This allows you to have direct access to the DOM element or component instance.
153
+
React 支持一個可以附加到任何 component 的特殊 attribute。Ref attribute 可以是由 [`React.createRef()` function](/docs/react-api.html#reactcreateref)返回的 object,或一個 callback function,或一個 string (在舊有 API 中)。當 `ref` attribute 是 callback function 時,該 function 接受底層的 DOM element 或 class instance(視乎 element 的類別)作為參數。這使你可以直接訪問 DOM element 或 component instance。
154
154
155
-
Use refs sparingly. If you find yourself often using refs to "make things happen" in your app, consider getting more familiar with [top-down data flow](/docs/lifting-state-up.html).
When a component's props or state change, React decides whether an actual DOM update is necessary by comparing the newly returned element with the previously rendered one. When they are not equal, React will update the DOM. This process is called "reconciliation".
166
+
當一個 component 的 props 或 stats 改變時,React 通過比較新返回的 element 和之前 render 的來決定是否需要實際的 DOM 更新。當它們不相等時,React 將更新 DOM。這個過程被稱為「reconciliation」。
0 commit comments