如何使用Reactjs创建快速天气小部件应用程序[关闭]

问题描述 投票:0回答:1

我想知道是否有一个可以快速创建天气小部件的示例,如果是轻量级的就更好了。

javascript reactjs jquery-plugins yahoo-weather-api google-geolocation
1个回答
2
投票

我想分享一些使用 JavaScriptJqueryReactjs 创建应用程序的概念。这比任何其他来源都可以帮助快速学习。这是我使用 Reactjs 所做的:

HTML:

<div style="width: 310px;display: block;float: left; padding: 20px;">
   <div id="weather-app"></div>
</div>
<script src='https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-with-addons.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-dom.js'></script>
<script src="script.js"></script>

JS:

var Main = React.createClass({
  getInitialState: function(){
    return {
       isLoading: true,
       toggleForm: false,
       isError: false
  }
},
 setError: function(value){
  this.setState({isError: value});
 },
 changeLoading: function(value){
   this.setState({isLoading: value});
 },
 onToggleForm: function(value){
   this.setState({toggleForm: value});
 },
onFormSubmit: function(c, s){
  this.onToggleForm(false);
  this.refs.change.toggleForm();
  this.refs.front.reRender(c, s);
  this.setState({isError: false});
},
render: function(){
  return (
    <div id="weather" className="weather">
      <ChangeBtn ref="change" isLoading={this.state.isLoading} toggleForm={this.onToggleForm} />
      <Front ref="front" isLoading={this.state.isLoading} isError={this.state.isError} setError={this.setError} loadCallback={this.changeLoading} toggle={this.state.toggleForm} />
      <Form isLoading={this.state.isLoading} toggle={this.state.toggleForm} onFormSubmit={this.onFormSubmit} isError={this.state.isError} setError={this.setError} />
      <Spinner isLoading={this.state.isLoading} />
    </div>
  )
 }
})

ReactDOM.render(<Main />, document.getElementById("weather-app"));

1)以上代码仅是预览。完整示例可以在此 plnkr1 链接找到。

2)我在这里使用Jquery创建了相同的示例:plnkr2

3)我想知道,如果我使用本机 JavaScript 为极其轻量级的应用程序构建相同的内容会怎样?然后我还使用 pure JavaScript 创建了相同的内容:plnkr3

© www.soinside.com 2019 - 2024. All rights reserved.