今回はタイトルにもある通り、CordovaとReactで作成しているアプリにページ遷移を導入する方法についてです。
流石に1ページだけではアプリらしくないですからね。
なお導入方法について、参考にさせていただいた記事はこちら。
react-router@v4を使ってみよう:シンプルなtutorial – Qiita
https://qiita.com/m4iyama/items/b4ca1773580317e7112e
さて、導入ですが、まずは下記のコマンドで react-router-dom をインストールします。
npm install react-router-dom
事前準備はこれだけ。
あとは、実際にコードを書いていきます。
import React from 'react'
import { BrowserRouter, Route, Link } from 'react-router-dom'
const App = () => {
return (
<BrowserRouter>
<div>
<ul>
<li><Link to='/'>Home</Link></li>
<li><Link to='/about'>About</Link></li>
<li><Link to='/friends/10'>Friends</Link></li>
</ul>
<hr />
<Route exact path='/' component={Home} />
<Route path='/about' component={About} />
<Route path='/friends/:ids' component={Friends} />
</div>
</BrowserRouter>
);
}
const Home = () => (
<div>
<h2>Home</h2>
Homeページです
</div>
)
const About = () => (
<div>
<h2>About</h2>
Aboutページです
</div>
)
const Friends = ({ match }) => (
<div>
<h2>Friends</h2>
Friendページです{match.params.ids}
</div>
)
export default App
ちなみに、上記のファイルを実際に画面に表示しているのはこちらのコードです。
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App'; // 上記のコードが書かれたjsファイル
ReactDOM.render(
<App />,
document.getElementById('root')
);
ほぼサンプルコードのままですが、動作を理解するにはぴったりです。
まず、 BrowserRouterタグで一番外側を囲い、Routeタグで表示させたいページとそのURLを指定しています。
リンクについては、Linkタグを使います。
こちらは、HTMLのaタグとイメージが近いと思います。
また、ページ遷移をした際、値を渡すことも可能です。
11行目のfriendsページへのリンク先のように、ページ名の後に /[値] と指定します。
また、16行目のように、URLから値を受け取れるようにします。
そして、受け取った値は、34行目からのFriendsページで取得・表示をしています。
今回は、値を表示させているだけですが、値によって表示するデータを変えるなどの処理が行えます。
基本的なことは、以上が分かっていれば問題なく実装できるかと思います。
以上、react-routerでページ遷移を実装する方法でした。
次回は、Linkタグを使わずに、関数内でページ遷移する方法についてご紹介できればと思います。