哪种方式更适合调用多个组件
Which way is better for calling multiple components
我想知道调用多个组件的哪种方式更好。这里我们有一个例子,它以组合类型的方式调用组件另一个词是(高阶函数??)
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'));
这里你会调用Login,它在App的Title中
另一种方法是单独创建每个组件,并有一个主父组件,该父组件调用每个子组件的子属性,如…
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'));
在我看来,第二种方法更干净,不依赖于其他组件。但我只是想知道哪种方式是标准的。
这是直接来自React文档:
在设计界面时,分解常见的设计元素(按钮、表单字段、布局组件等)变成可重用的具有良好定义接口的组件。这样的话,下次你如果你需要构建一些UI,你可以编写更少的代码。这意味着更快开发时间,更少的bug,更少的字节。
React的美妙之处在于能够将你的应用构建成简单的、可重用的组件,并且可以选择将数据从父组件传递给子组件。因此,将所有组件放在一个文件中,基本上违背了React的主要目标。
我个人喜欢有一个索引文件来处理我的中间件和路由,然后每个节有一个父文件来处理导入和向下传递数据。
相关文章:
- 从 HTML 组件调用 Javascript
- 反应组件调用了两次(AJAX调用异步)
- Vue.js 从另一个组件调用方法
- 从反应组件调用外部Javascript函数
- 如何在React Native中使用Navigator对正在转换为的组件调用方法
- 如何包含多个组件,然后可能从一个组件调用另一个组件
- 当子组件有嵌套的多个父组件时,从子组件调用超父函数
- 在reactjs中,从父组件调用并传递参数给子组件的函数
- React:从非所有者父组件调用函数
- 从Ember 2.0组件调用控制器动作
- 从另一个组件调用React VideoJS组件的方法
- 不能使用React从子组件调用父组件中的函数
- 如果不在主代码流中,ActiveX组件调用的回调函数不会触发
- 如何从不同的组件调用函数
- JavaScript,只在需要时才加载组件/调用方法
- Angular2从另一个组件调用函数
- Knockoutjs:从子组件调用父组件的函数
- 如何从子组件调用父组件中的方法
- 为什么用jQuery组件调用函数会重新加载xhtml页面
- 如何在 React 中从另一个组件调用组件的方法