More Related Content
Similar to JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン (20)
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
- 8. Onsen UIの構成
<ons-page ng-controller="AppController as app">
<ons-tabbar>
<ons-tab page=“search.html"></ons-tab>
<ons-tab page=“like.html”></ons-tab>
</ons-tabbar>
</ons-page>
<ons-template id=“search.html">
・・・
</ons-template>
<ons-template id=“like.html”>
・・・
</ons-template>
<ons-template id=“result.html”>
・・・
</ons-template>
JSで切り替え
- 26. コンポーネントベース
- App.jsx
-Shop.jsx
export default class Shop extends Component {
render() {
return (
・・・
);
}
});
コンポーネントに
DOMを定義し、コン
ポーネントを組み合わ
せる。
コンポーネントの定義
に従い、DOMが生成
される。
export default class App extends Component {
render() {
return (
<div className="commentBox">
・・・
<Shop />
</div>
);
}
});
- 27. props
export default class App extends
Component {
return (
<div className=”contaner">
<h1>Comments</h1>
<Shop shop={this.data} />
</div>
);
}
});
export default class Shop extends
Component {
return (
<div className=“Comment">
{this.props.shop}
</div>
);
}
});
App.jsx Shop.jsx
・dataの値を受け渡す
・Appでdataを更新したら、
自動的にdataの値を受け渡す
- 28. state
export default class App extends Component
{
constructor(props) {
super(props);
this.state = {
isResult: false,
shops : Array()
};
}
render:() {
return (
・・・
);
}
});
・コンポーネントの状態をもつ、ミュータブル(不変)な値
・コンポーネント自身の状態をもつ
{
shops =[data1, data2]
}
stateに対して、
・props はイミュータブル(可変)な値
・propsは親の状態をもつ
- 29. propsとstate
export default class App extends
Component {
render () {
return (
<div className=”container">
<Shop shop={this.state.data} />
</div>
);
}
});
{data: “お店1”}
this.setState({data: “お店2”});
export default class Shop extends
Component {
render() {
return (
<li>
<p> {this.props.shop} </p>
</li>
);
}
}
{data: “お店2”}
<div>お店1</div> <div>お店2</div>
state
DOM