Skip to content

Commit

Permalink
Merge pull request #110 from itayyehezkel/uncontrolled-components
Browse files Browse the repository at this point in the history
add uncontrolled components
  • Loading branch information
galnir committed Oct 5, 2019
2 parents 56ca4ef + fb8189a commit 1873935
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions content/docs/uncontrolled-components.md
@@ -1,14 +1,14 @@
---
id: uncontrolled-components
title: Uncontrolled Components
title: קומפוננטות לא מבוקרות
permalink: docs/uncontrolled-components.html
---

In most cases, we recommend using [controlled components](/docs/forms.html) to implement forms. In a controlled component, form data is handled by a React component. The alternative is uncontrolled components, where form data is handled by the DOM itself.
ברוב המקרים, אנו ממליצים להשתמש [בקומפוננטות מבוקרות](/docs/forms.html) למימוש טפסים. בקומפוננטה מבוקרת, נתוני הטופס מנוהלים על ידי קומפוננטת React. האלטרנטיבה היא קומפוננטה לא מבוקרת, איפה שנתוני הטופס מנוהלים על ידי ה-DOM עצמו.

To write an uncontrolled component, instead of writing an event handler for every state update, you can [use a ref](/docs/refs-and-the-dom.html) to get form values from the DOM.
כדי לכתוב קומפוננטה לא מבוקרת, במקום לרשום event handler לכל עדכון state, אתה יכול [להשתמש ב-ref](/docs/refs-and-the-dom.html) כדי לקבל את ערכי הטופס מה-DOM.

For example, this code accepts a single name in an uncontrolled component:
לדוגמא, הקוד הזה מקבל שם יחיד בקומפוננטה לא מבוקרת:

```javascript{5,9,18}
class NameForm extends React.Component {
Expand Down Expand Up @@ -37,15 +37,15 @@ class NameForm extends React.Component {
}
```

[**Try it on CodePen**](https://codepen.io/gaearon/pen/WooRWa?editors=0010)
[**נסו זאת ב-CodePen**](https://codepen.io/gaearon/pen/WooRWa?editors=0010)

Since an uncontrolled component keeps the source of truth in the DOM, it is sometimes easier to integrate React and non-React code when using uncontrolled components. It can also be slightly less code if you want to be quick and dirty. Otherwise, you should usually use controlled components.
מכיוון קומפוננטה לא מבוקרת שומרת את מקור האמת ב-DOM, לפעמים זה קל יותר לשלב React ולא React קוד מתי שמשתמשים בקומפוננטה לא מבוקרת. זה גם יכול להיות מעט קוד אם אתה רוצה להיות מהיר ומלוכלך, אחרת, אתה צריך קומפוננטה מבוקרת.

If it's still not clear which type of component you should use for a particular situation, you might find [this article on controlled versus uncontrolled inputs](https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/) to be helpful.
אם זה עדיין לא ברור איזה סוג של קומפוננטה אתה צריך להשתמש בסיטואציה מסויימת, אתה עשוי למצוא את [המאמר הזה על קלט מבוקר נגד לא מבוקר](https://goshakkk.name/controlled-vs-uncontrolled-inputs-react/) מאוד שימושי.

### Default Values {#default-values}
### ערכי ברירת מחדל {#default-values}

In the React rendering lifecycle, the `value` attribute on form elements will override the value in the DOM. With an uncontrolled component, you often want React to specify the initial value, but leave subsequent updates uncontrolled. To handle this case, you can specify a `defaultValue` attribute instead of `value`.
ברנדור מחזור החיים של React, התכונה `value` באלמנטי טופס ידרסו את הערך ב-DOM. עם קומפוננטה לא מבוקרת, לעיתים קרובות תרצה ש-React יספק את הערך הראשוני, אבל ישאיר את העדכונים הבאים לא מבוקרים. כדי לטפל במקרה כזה, אתה יכול לציין את תכונת `defaultValue` במקום `value`

```javascript{7}
render() {
Expand All @@ -64,19 +64,19 @@ render() {
}
```

Likewise, `<input type="checkbox">` and `<input type="radio">` support `defaultChecked`, and `<select>` and `<textarea>` supports `defaultValue`.
כך גם, `<input type="checkbox">` ו-`<input type="radio">` תומכים ב-`defaultChecked`, ו-`<select>` ו-`<textarea>` תומכים ב-`defaultValue`.

## The file input Tag {#the-file-input-tag}
## התג file input {#the-file-input-tag}

In HTML, an `<input type="file">` lets the user choose one or more files from their device storage to be uploaded to a server or manipulated by JavaScript via the [File API](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications).
ב-HTML , `<input type="file">` נותן למשתמשים לבחור קובץ אחד או יותר מהמכשיר שלהם לעלות לשרת או לתפעול על ידי JavaScript דרך [File API](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications).

```html
<input type="file" />
```

In React, an `<input type="file" />` is always an uncontrolled component because its value can only be set by a user, and not programmatically.
ב-React, `<input type="file" />` הוא תמיד קומפוננטה לא מבוקרת בגלל שהערך שלו ניתן על ידי המשתמש, ולא באופן תכנותי.

You should use the File API to interact with the files. The following example shows how to create a [ref to the DOM node](/docs/refs-and-the-dom.html) to access file(s) in a submit handler:
אתה צריך להשתמש ב-File API כדי לתקשר עם קבצים. הדוגמא הבאה מראה איך ליצור [ref ל-DOM node](/docs/refs-and-the-dom.html) כדי לגשת לקובץ(ים) ב-submit handler:

`embed:uncontrolled-components/input-type-file.js`

Expand Down

0 comments on commit 1873935

Please sign in to comment.