@samitouri / QOS-React-2 / commits / 990caa4a9a

Translate 10.3-class-name-manipulation.md to Japanese

Kohei TAKATA committed Jul 17, 2015 at 08:51 UTC 990caa4a9a73aaa3b65c8e7dbc975abdb2f1bc5b
1 file changed +61
docs/docs/10.3-class-name-manipulation.ja-JP.md new
+61
@@ -0,0 +1,61 @@
1 +---
2 +id: class-name-manipulation
3 +title: クラス名の操作
4 +permalink: class-name-manipulation-ja-JP.html
5 +prev: two-way-binding-helpers-ja-JP.html
6 +next: test-utils-ja-JP.html
7 +---
8 +
9 +> 注意:
10 +> このモジュールは現在[JedWatson/classnames](https://github.com/JedWatson/classnames)に独立して存在しており、Reactは変更を検知していません。したがって、こちらは将来削除される予定です。
11 +
12 +`classSet()` はDOMの `class` 文字列を簡単に操作するすっきりとしたユーティリティです。
13 +
14 +以下は、 `classSet()` を使用しない共通なシナリオと解決策です。
15 +
16 +```javascript
17 +// `<Message />` などの中のReactコンポーネント
18 +render: function() {
19 + var classString = 'message';
20 + if (this.props.isImportant) {
21 + classString += ' message-important';
22 + }
23 + if (this.props.isRead) {
24 + classString += ' message-read';
25 + }
26 + // 'message message-important message-read'
27 + return <div className={classString}>Great, I'll be there.</div>;
28 +}
29 +```
30 +
31 +上記は、クラス名を文字列として渡しているので、面倒で、読みにくく、エラーが発生しやすくなります。以下のように、 `classSet()` を使用するとこの問題が解決します。
32 +
33 +```javascript
34 +render: function() {
35 + var cx = React.addons.classSet;
36 + var classes = cx({
37 + 'message': true,
38 + 'message-important': this.props.isImportant,
39 + 'message-read': this.props.isRead
40 + });
41 + // 同様に最終的には文字列になりますが、クリアにはなります
42 + return <div className={classes}>Great, I'll be there.</div>;
43 +}
44 +```
45 +
46 + `classSet()` を使用する際には、キーと、必要であったり、必要でないCSSのクラス名をオブジェクトとして渡してください。値が真であるものはキーとなり、最終的には文字列の一部になります。
47 +
48 +`classSet()` もまた、以下のように連結した文字列の引数としてクラス名を渡します。
49 +
50 +```javascript
51 +render: function() {
52 + var cx = React.addons.classSet;
53 + var importantModifier = 'message-important';
54 + var readModifier = 'message-read';
55 + var classes = cx('message', importantModifier, readModifier);
56 + // 最終的な文字列は 'message message-important message-read'
57 + return <div className={classes}>Great, I'll be there.</div>;
58 +}
59 +```
60 +
61 +文字列の連結を手で書くのはやめましょう!