• React Router 4.0中文快速入门


     1 import React from 'react'
     2 import {
     3   BrowserRouter as Router,
     4   Route,  
     5   Link
     6 } from 'react-router-dom'
     7 
     8 const Home = () => (
     9   <div>
    10     <h2>Home</h2>
    11   </div>
    12 )
    13 
    14 const About = (props) => { 
    15      let goto=function(){
    16        console.log(props);
    17        let { history } = props; 
    18        history.push('/topics');  //编程式跳转,注意使用prop来读取history
    19      }
    20      return (
    21       <div>
    22         <h2><button onClick={goto}>about</button></h2>    
    23       </div>
    24       )
    25   
    26  }
    27 
    28 const Topic = ({ match }) => (
    29   <div>
    30     <h3>{match.params.topicId}</h3>
    31   </div>
    32 )
    33 
    34 const Topics = ({ match }) => (
    35   <div>
    36     <h2>Topics</h2>
    37     <ul>
    38       <li>
    39         <Link to={`${match.url}/rendering`}>
    40           Rendering with React:          
    41         </Link>
    42       </li>
    43       <li>
    44         <Link to={`${match.url}/components`}>
    45           Components
    46         </Link>
    47       </li>
    48       <li>
    49         <Link to={`${match.url}/props-v-state`}>
    50           Props v. State
    51         </Link>
    52       </li>
    53     </ul>
    54     
    55     <Route path={`${match.url}/:topicId`} component={Topic}/>
    56     <Route exact path={match.url} render={() => (
    57       <h3>Please select a topic.</h3>      
    58     )}/>
    59   </div>
    60 )
    61 
    62 const BasicExample = ({ match }) => (
    63   <Router>    //跳由容器
    64     <div>
    65       <ul>
    66         <li><Link to="/">Home</Link></li>
    67         <li><Link to="/about">About</Link></li>
    68         <li><Link to="/topics">Topics</Link></li>
    69 
    70         <li><Link to="/query/user?id=123&name=minooo">query1</Link></li>
    71         <li><Link to={{pathname: '/query/user', search: '?id=456&name=minooo'}}>query2</Link></li>
    72       </ul>
    73 
    74 
    75      
    76       <hr/>
    77    
    78       <Route exact path="/" component={Home}/>   //表示点击Link里的to就自动把组件渲染 <Route>位置这里 exact表示精确匹配
    79       <Route path="/about" component={About}/>
    80       <Route path="/topics" component={Topics}/>
    81 
    82       <Route path='/query/user' render={({match, location}) => (   //render他component一样的用法,不过render不用再次渲染,比较高效 
    83         <div>
    84           <p><About></About></p>
    85           <p>query</p>
    86           <p>match:{JSON.stringify(match)}</p>
    87           <p>location:{JSON.stringify(location)}</p>
    88           <p>id:{new URLSearchParams(location.search).get('id')}</p>
    89           <p>name:{new URLSearchParams(location.search).get('name')}</p>
    90         </div>
    91       )} />
    92 
    93     </div>
    94   </Router>
    95 )
    96 export default BasicExample
  • 相关阅读:
    每天一点小进步(8):高效测试用例设计-XMind2TestCase
    每天一点小进步(7):Mqtt客户端理解
    每天一点小进步(6):postman使用指南
    每天一点小进步(5):python编码问题
    每天一点小进步(4): 推拉流协议初识
    每天一点小进步(3):yaml文件的相关知识点
    每天一点小进步(2):python 大文件处理
    每天一点小进步(1):lambda实现列表过滤&trim函数实现
    简单实现 随机发牌算法
    Linux学习(三)
  • 原文地址:https://www.cnblogs.com/yuri2016/p/7693204.html
Copyright © 2020-2023  润新知