2016-08-22 112 views
-1

我想知道哪種方式調用多個組件更好。在這裏,我們有一個例子它調用組件的組成型方式的另一種說法,這將是(高階功能???)哪種方式更好地調用多個組件

var App = React.createClass({ 
 
    render:function() { 
 
     return(
 
      <div> 
 
       <div className="container"> 
 
        {this.props.children} 
 
       </div> 
 

 
      </div> 
 
     ) 
 
    } 
 
}); 
 

 
// Title Component 
 
var Title = React.createClass({ 
 
    render:function() { 
 
     return(
 
      <App> 
 
       <div className="text-center"> 
 
        <h1>Rock App</h1> 
 
        <h4>An Easy Way To Track Your Rock Climbing Progress</h4> 
 
       </div> 
 
       {this.props.children} 
 
      </App> 
 
     ) 
 
    } 
 
}); 
 

 
// Login Component 
 
var Login = React.createClass({ 
 
    render:function() { 
 
     return(
 
      <Title> 
 
       <div> 
 
        <form className="form-horizontal"> 
 
         <div className="form-group"> 
 
          <label className="col-sm-2 control-label">Email</label> 
 
          <div className="col-sm-10"> 
 
           <input type="email" className="form-control" id="inputEmail3" placeholder="Email"/> 
 
          </div> 
 
         </div> 
 
         <div className="form-group"> 
 
          <label className="col-sm-2 control-label">Password</label> 
 
          <div className="col-sm-10"> 
 
           <input type="password" className="form-control" id="inputPassword3" placeholder="Password"/> 
 
          </div> 
 
         </div> 
 
         <div className="form-group"> 
 
          <div className="col-sm-offset-2 col-sm-10"> 
 
           <button type="submit" className="btn btn-default">Sign in</button> 
 
          </div> 
 
         </div> 
 
        </form> 
 
       </div> 
 

 
      </Title> 
 

 
     ) 
 
    } 
 
}); 
 

 
ReactDOM.render(<Login/>, document.getElementById('app'));

在這裏,你會打電話登錄,其內標題是在應用程序內。

另一種方法是單獨創建每個組件都有其調用每個子組件子屬性,像這樣一個主父組件...

var Title = React.createClass({ 
 
    render: function() { 
 
     return(
 
      <div className="head text-center"> 
 
       <h1>Rock App</h1> 
 
       <h3>The only app you need to track your climbs</h3> 
 
      </div> 
 
     ) 
 
    } 
 
}); 
 

 
var Login = React.createClass({ 
 
    render: function() { 
 
     return(
 
      <div> 
 
       <form className="form-horizontal"> 
 
        <div className="form-group"> 
 
         <label className="col-sm-2 control-label">Email</label> 
 
         <div className="col-sm-10"> 
 
          <input type="email" className="form-control" id="inputEmail3" placeholder="Email"/> 
 
         </div> 
 
        </div> 
 
        <div className="form-group"> 
 
         <label className="col-sm-2 control-label">Password</label> 
 
         <div className="col-sm-10"> 
 
          <input type="password" className="form-control" id="inputPassword3" placeholder="Password"/> 
 
         </div> 
 
        </div> 
 
        <div className="form-group"> 
 
         <div className="col-sm-offset-2 col-sm-10"> 
 
          <button type="submit" className="btn btn-default">Sign in</button> 
 
         </div> 
 
        </div> 
 
       </form> 
 
      </div> 
 
     ) 
 
    } 
 
}); 
 

 
var Homepage = React.createClass({ 
 
    render: function() { 
 
     return(
 
      <div> 
 
       <div className="container"> 
 
        <Title>{this.props.children}</Title> 
 
        <Login>{this.props.children}</Login> 
 
       </div> 
 
      </div> 
 
     ) 
 
    } 
 
}); 
 

 

 

 

 
ReactDOM.render(<Homepage/>, document.getElementById('app'));

在我看來第二種方式更清潔並且不依賴於其他組件。但我只是想清楚標準方法。

回答

0

這是直接從陣營文檔:

當設計接口,分解共同設計元素 (按鈕,表單字段,佈局部件等)成可重用 部件具有良好定義的接口。這樣,下次您需要構建一些UI時,您可以編寫更少的代碼。這意味着更快的開發時間,更少的錯誤和更少的字節。

React的美妙之處在於能夠將應用程序構造成簡單的可重用組件,並且可以選擇將數據從父項傳遞給子組件。因此,通過將所有組件放在一個文件中,它基本上就是擊敗了React的主要目標。

我個人喜歡有一個處理我的中間件和路由的索引文件,然後是處理導入和傳遞數據的每個部分的父文件。

相關問題