目次
1.JSX によりテンプレートに js 変数を挿入できるようになります
2.ReactDomTest
3. JSX を使用して JS と HTML の混合をサポートします
4. コンポーネントを作成します
5. 属性プロパティ
を使用します。6.PropsType
7. デフォルトのプロパティ GetDefaultProps

ReactJs の基本_html/css_WEB-ITnose

Jun 21, 2016 am 08:58 AM

  • プロジェクトの一部のページを再構築する必要があり、ReactJs が使用されているため、いくつかの小さなデモを作成しました

  • ソース コードのアドレス (wiki を含む)

1.JSX によりテンプレートに js 変数を挿入できるようになります

<!DOCTYPE html><html>    <head>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">            //JSX 允许直接在模板插入 JavaScript 变量。如果这个变量是一个数组,则会展开这个数组的所有成员            var arr = [                 <h1> Hellow, Pan </h1>,                <h2> I like React very much! </h2>,            ];            ReactDOM.render(                <div>{arr}</div>,                document.getElementById('example')            );        </script>    </body></html>
ログイン後にコピー

2.ReactDomTest

<!DOCTYPE html><html>    <head>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">            ReactDOM.render(                <h1>Hello, world!</h1>,                document.getElementById('example')                );        </script>    </body></html>
ログイン後にコピー

3. JSX を使用して JS と HTML の混合をサポートします

<!DOCTYPE html><html>    <head>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">            var names = ['Shine', 'Pans', 'Panshang'];            //jsx可以让html和js混用, <>是html, {}是js            ReactDOM.render(                <div>                {                    names.map(function (name){                        return <div> Hello, {name}!</div>                    })                }                </div>,                document.getElementById('example')            );        </script>    </body></html>
ログイン後にコピー

4. コンポーネントを作成します

<!DOCTYPE html><html>    <head>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">        //HelloMessage 是一个组件类。模板插入 <HelloMessage /> 时,会自动生成 HelloMessage 的一个实例            var HelloMessage = React.createClass({                render: function(){                    return <h1>Hello, {this.props.name}</h1>;                }            });            ReactDOM.render(                <HelloMessage name = "Pan" />,                document.getElementById('example')            );        </script>    </body></html>
ログイン後にコピー

5. 属性プロパティ

<!DOCTYPE html><html>    <head>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">        //NoteList 组件有两个 span 子节点,它们都可以通过 this.props.children 读取            var NotesList = React.createClass({              render: function() {                return (                  <ol>                  {                    React.Children.map(this.props.children, function (child) {                      return <li>{child}</li>;                    })                  }                  </ol>                );              }            });            ReactDOM.render(              <NotesList>                <span>hello</span>                <span>Pan! </span>              </NotesList>,              document.body            );        </script>    </body></html>
ログイン後にコピー

を使用します。6.PropsType

<!DOCTYPE html><html>    <head>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">            var MyTitle = React.createClass({                //要求title的属性的data类型是string,只能是string                propTypes: {                    title: React.PropTypes.string.isRequired,                },                render: function() {                    return <h1> {this.props.title} </h1>;                }            });            //测试部分, 将title属性设置成 int类型, 然后会报错            //将123用引号包起来标示为字符串类型将不在报错            var data = 123;            ReactDOM.render(                <MyTitle title = {data} />,                document.body                );        </script>    </body></html>
ログイン後にコピー

7. デフォルトのプロパティ GetDefaultProps

<🎜 を使用します。 >

<!DOCTYPE html><html>    <head>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">        //获取默认的属性        //获取的是title的值            var MyTitle = React.createClass({              getDefaultProps : function () {                return {                  title : 'shinepans'                };              },              render: function() {                 return <h1> {this.props.title} </h1>;               }            });            ReactDOM.render(              <MyTitle />,              document.body            );        </script>    </body></html>
ログイン後にコピー
8. 本物の dom を取得します

<!DOCTYPE html><html>    <head>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">            var MyComponent = React.createClass({                handleClick: function() {                //监听点击事件, 聚焦输入框                this.refs.myTextInput.focus();                },                render: function() {                    return (                    <div>                        <input type="text" ref="myTextInput" />                        <input type="button" value="Focus the text input" onClick={this.handleClick} />                    </div>                        );                    }                });            ReactDOM.render(                <MyComponent />,                document.getElementById('example')            );        </script>    </body></html>
ログイン後にコピー
9. State

を通じて状態を変更します。

<!DOCTYPE html><html>    <head>        <meta charset="utf-8")> </meta>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">            var LikeButton = React.createClass({              getInitialState: function() {                return {liked: false};              },              handleClick: function(event) {                this.setState({liked: !this.state.liked});              },              //转换状态, 喜欢或不喜欢              render: function() {                var text = this.state.liked ? '喜欢了' : '还没喜欢';                return (                  <p onClick={this.handleClick}>                    你{text}这个.点击文本改变你的状态.                  </p>                );              }            });            ReactDOM.render(              <LikeButton />,              document.getElementById('example')            );        </script>    </body></html>
ログイン後にコピー
10. ユーザー対話を改善するためにフォーム監視を使用します

<!DOCTYPE html><html>    <head>        <meta charset="utf-8")> </meta>        <script src="../build/react.js"></script>        <script src="../build/react-dom.js"></script>        <script src="../build/browser.min.js"></script>    </head>    <body>        <div id="example"></div>        <script type="text/babel">        //监听textarea的变化, 变化了就更新p标签里的内容        //下面初始化了 输入框和p的初始值            var Input = React.createClass({              getInitialState: function() {                return {value: '请在文本框输入文本'};              },              handleChange: function(event) {                this.setState({value: event.target.value});              },              render: function () {                var value = this.state.value;                return (                  <div>                    <textarea rows="10" cols="30" value={value} onChange={this.handleChange} />                    <p>{value}</p>                  </div>                );              }            });            ReactDOM.render(<Input/>, document.body);        </script>    </body></html>
ログイン後にコピー
11. JSBIn を使用してブラウザーで直接実行します。 JSX のデバッグは非常に便利です。

    JSBib URL
テキストのグラデーション効果を作成するには、小道具、タイマーなどが使用されます。ソース コードはソース コードのアドレスを参照します。冒頭に記載

作成者: Pan Shang

時刻: 2016.1.30

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

See all articles