<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 四、View(第一部分) 請打開 Demo 的首頁[`index.jsx`](https://github.com/ruanyf/extremely-simple-flux-demo/blob/master/index.jsx)?,你會看到只加載了一個組件。 > ~~~ > // index.jsx > var React = require('react'); > var ReactDOM = require('react-dom'); > var MyButtonController = require('./components/MyButtonController'); > > ReactDOM.render( > <MyButtonController/>, > document.querySelector('#example') > ); > ~~~ 上面代碼中,你可能注意到了,組件的名字不是?`MyButton`,而是?`MyButtonController`。這是為什么? 這里,我采用的是 React 的?[controller view](http://blog.andrewray.me/the-reactjs-controller-view-pattern/)?模式。"controller view"組件只用來保存狀態,然后將其轉發給子組件。`MyButtonController`的[源碼](https://github.com/ruanyf/extremely-simple-flux-demo/blob/master/components/MyButtonController.jsx)很簡單。 > ~~~ > // components/MyButtonController.jsx > var React = require('react'); > var ButtonActions = require('../actions/ButtonActions'); > var MyButton = require('./MyButton'); > > var MyButtonController = React.createClass({ > createNewItem: function (event) { > ButtonActions.addNewItem('new item'); > }, > > render: function() { > return <MyButton > onClick={this.createNewItem} > />; > } > }); > > module.exports = MyButtonController; > ~~~ 上面代碼中,`MyButtonController`將參數傳給子組件`MyButton`。后者的[源碼](https://github.com/ruanyf/extremely-simple-flux-demo/blob/master/components/MyButton.jsx)甚至更簡單。 > ~~~ > // components/MyButton.jsx > var React = require('react'); > > var MyButton = function(props) { > return <div> > <button onClick={props.onClick}>New Item</button> > </div>; > }; > > module.exports = MyButton; > ~~~ 上面代碼中,你可以看到[`MyButton`](https://github.com/ruanyf/extremely-simple-flux-demo/blob/master/components/MyButton.jsx)是一個純組件(即不含有任何狀態),從而方便了測試和復用。這就是"controll view"模式的最大優點。 `MyButton`只有一個邏輯,就是一旦用戶點擊,就調用[`this.createNewItem`](https://github.com/ruanyf/extremely-simple-flux-demo/blob/master/components/MyButtonController.jsx#L27)?方法,向Dispatcher發出一個Action。 > ~~~ > // components/MyButtonController.jsx > > // ... > createNewItem: function (event) { > ButtonActions.addNewItem('new item'); > } > ~~~ 上面代碼中,調用`createNewItem`方法,會觸發名為`addNewItem`的Action。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看