概要
-
OnsenUIはアシアル社が開発している、パフォーマンス向上 + スマホUIの提供を行うハイブリットアプリ制作のフレームワーク。
-
今までOnsenUIでハイブリットアプリを開発する際は、OnsenUI 1.x(AngularJS 1.xベース)で開発していましたが、Reactでも書きたかった為、OnsenUI 2.x(OnsenUI for React)の各種ReactComponentの使い方についてまとめる。
-
Reactの復習も含め、丁寧に理解したかった為、2,3個のComponent毎に記事を作る。
Component
まずは、今回作成したソースです。
import React from 'react';
import ReactDOM from 'react-dom';
import { Page, Button } from 'react-onsenui';
export default class TodosApp extends React.Component {
render() {
return (
<Page>
<Button
modifier="material"
>
Tap Me!
</Button>
</Page>
);
}
}
Page Component
OnsenUI 1.x の<ons-page>にあたるコンポーネントです。
<Navigator>, <Splitter>, <Tabbar>などの画面の構成を行うコンポーネントの子コンポーネントとして存在します。
Pageコンポーネント内で、<ToolBar>を利用したい場合は、
Pageコンポーネントのpropsとして、renderToolbar(fn)を記載します。
(モーダルバージョンのrenderModal(fn)も存在します。)
...
render() {
return (
<Page
renderToolbar={() =>
<Toolbar>
<div>Title</div>
</Toolbar>
}
>
</Page>
);
}
...
Props
PageComponentはイベントドリブンで、ページ変化にともなってイベントを取ることが可能です。
イベントの記述もPageコンポーネントのpropsに記載します。
Props | Description |
---|---|
modifier | Props値を変更して見た目を変更する。 |
renderToolbar={fn} | PageにToolbarをrenderする。 |
renderModal={fn} | PageにModalをrenderする。 |
onInit={fn} | PageがDOMに生成された後に一度だけ発火。 |
onShow={fn} | Pageが画面に現れた後に発火。 |
onHide={fn} | Pageが画面から消えた後に発火。 |
各Componentには**[modifier]**というpropsが存在します。
modifierを変更すると、OnsenUIにpresetで入っているスタイルなどが反映されます。
大抵のmodifierはOptionalですが、上手くつかえばiOSとAndroidの切り替えなど、
イメージ通りのUIがすぐに作ることができます。
Modifier
Modifier | Description |
---|---|
material | マテリアルデザイン風にページを変更 |
Button Component
次はButtonコンポーネントです。
OnsenUI 1.xの<ons-button>にあたるComponentになります。
Props
Props | Description |
---|---|
modifier | Props値を変更して見た目を変更する。 |
disabled | Disabled状態に変更する。 |
ripple | waveEffectを掛ける。 |
onClick={fn} | クリックした際にコールバックを実行する。 |
Modifier
modifierを変更する事で、様々なボタンを表現する事が可能です。
Modifier | Description |
---|---|
outline | 外の線のみの背景が透明のボタン |
light | 目立たないボタン |
quiet | 外の線もなく、背景も透明なボタン |
cta | 目立つボタン(明度が上がります) |
large | 大きなボタン |
large--quiet | 大きく、外線もなく、背景も透明なボタン |
large--cta | 大きく、目立つボタン |
material | マテリアルデザインのボタン |
material--flat | 外の線もなく、背景も透明なマテリアルデザインのボタン |
終わり
ReactNativeに感度がありましたが、もう少し仕様が固まってからにしようと思い、
OnsenUI 2.xに先に取り掛かりました。
AngularベースのOnsenUI 1.xでのアプリ開発を経験している人であれば、
OnsenUI 2.x自体にはスムーズに入っていく事が可能だと思います。
続きは次回。
-P.S.-
OnsenUIのOnsenの由来は、
【Onsen -> SPA(スパ) -> Single Page Application】
から来ているそうです。
なかなかの尖り具合で、おもしろいです。