Day22 React-Router

Router(路由),是用以规画网站路径用,React Router是根据URL 中使用的Route(/对於主页、/about关於页面等)有条件地呈现页面组件加以显示。

如何使用 React Router:

1.首先使用 NPM 安装:

react-router-dom 安装页面

npm install --save react-router-dom

2.在index.js页面中导入 BrowserRouter模组,并加入<BrowserRouter>标签

import { BrowserRouter } from “react-router-dom”
ReactDOM.render(
    <BrowserRouter>
        <App />
    </BrowserRouter>, 
    document.getElementById('root')
);

3.在App.js页面中导入Route 和 Switch 模组,接下来在App 组件中,添加<Switch><Route>标签,在<Route>标签内添加path属性和要加载的组件名称component属性。
在主页的path前面添加exact,告诉应用程序它是第一页,它会加载第一个匹配路由的URL。

<Route exact path="/" component = {Home} />

4.如果有子页面,例如在contact的页面下还有child子页面,这时必需在contact的path前面加上exact,才不会导致找不到画面

 <Route  exact path="/contact" component = {Contact} />

5.必需编写一个Error组件,如果用户输入了错误的 URL,它就会加载Error组件, 不要忘记将其导入应用程序。

https://ithelp.ithome.com.tw/upload/images/20211006/2013980052L8azSPyA.png

最後程序如下:

import React from 'react';
import { Route, Switch } from 'react-router-dom';
import Home from './Home';
import About from './About';
import Contact from './Contact';
import Error from './Error';

const App = () => {
  const Child =()=>{
    return <h1>This is Child Page!</h1>;
  }
  return (
    <div>    
       <Switch>
         <Route exact path="/" component = {Home} />
         <Route  path="/about" component = {About} />
         <Route  exact path="/contact" component = {Contact} />
         <Route  path="/contact/child" component = {Child} />
         <Route  component = {Error} />
       </Switch>  
    </div>
  )
}
export default App

<<:  Progressive Web App 推播通知: 网站推播通知用户端实作入门 (24)

>>:  Day 23. Zabbix 通知设定 - Custom alertscripts - Line

Day 4 | 游戏角色介绍

昨天我们提到这个游戏共有五个关卡,接下来今天要依照关卡分别介绍我们的角色故事 肥遗 某一个村庄莫名闹...

副业对我来说是什麽

我们的app 对我来说是什麽 是「自由」吗? 因为有这个误打误撞的产品 我才可以离开微软工作 但同时...

[Day12]ISO 27001 标准:验证范围

其实 ISO 系统都是通用的,从 ISO 9001、 ISO 14001、 ISO 50001、IS...

Day4: Network Access Control List(NACL) 简介与布建

上一篇我们提到了Security Group(SG),这一篇我们来讲Network Access C...

Day30-结赛感言之 This is not the end

就是今天!!想不到写着写着三十天就这样过去了~回顾这三十天的旅成还是觉得有点不可思议,真的只能用我同...