react创建项目学习基础语法react路由的简单应用(五)

1.npm install -g create-react-app 创建新项目

2.npm install --save react-router-dom 安装路由

3.组建测试代码测试组件

import React, { Component } from 'react'
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
import TestPage1 from './TestPage1'
import TestPage2 from './TestPage2'

// 创建ReactRouterTest组件
export default class ReactRouterTest extends Component {
  render() {
    return (
      <div>
        <Router>
          <ul>
              <li> <Link to="/">页面一</Link> </li>
              <li><Link to="/page2/123">页面二</Link> </li>
          </ul>
          <Route path="/" exact component={TestPage1} />
          <Route path="/page2/:id" component={TestPage2} />
        </Router>
      </div>
    )
  }
}


// function Page1() {
//   return <h2>page1</h2>;
// }

// function Page2() {
//   return <h2>page2</h2>;
// }
import React, { Component } from 'react'

// TestPage1组件
export default class TestPage2 extends Component {
  render() {
    return (
      <div>
        <p>111111111</p>
      </div>
    )
  }
}
import React, { Component } from 'react'
import { Link, Redirect } from "react-router-dom";

// TestPage2组件
export default class TestPage2 extends Component {
  constructor(props) {
    super(props);
    this.state = { 
        list:[
            {id:1,name:'react'},
            {id: 2, name: 'vue-2'},
            {id:3,name:'vue-3'},
        ]
    }
    // this.props.history.push("/");  // 编程式重定向
  }
  // 标签式重定向:就是利用<Redirect>标签来进行重定向,业务逻辑不复杂时建议使用这种。
  // 编程式重定向:这种是利用编程的方式,一般用于业务逻辑当中,比如登录成功挑战到个人中心
  componentDidMount(){
    console.log(this.props.match) // 路由参数
  }
  render() {
    return (
      <div>
        {/* 标签式重定向 */}
        {/* <Redirect to="/" /> */}
        <p>22222222</p>
        <ul>
            {
                this.state.list.map((item,index)=>{
                    return (
                        <li key={index}> 
                          <Link to={'/page2/'+item.id}> {item.name}</Link> 
                        </li>
                    )
                })
            }
        </ul>
      </div>
    )
  }
}

 

posted @ 2020-03-17 16:27  蓝色帅-橙子哥  阅读(288)  评论(0编辑  收藏  举报