学习react的第八天

学习react 的第八天 (路由重要的知识点)

路由的创建安装和使用(请务必看完)

(此代码包含的知识点 安装 导入 路由 路由的使用 和编程式导航)

import react,{Component} from 'react'
import reactDom from 'react-dom'

// react路由的应用
// 使用yarn add react-router-dom 下载路由
// ...导入
// import {BrowserRouter as Router,Route,Link}  from 'react-router-dom'
//  Route 其实就是 router-view
// Link就是router-link
import {BrowserRouter as Router,Route,Link} from 'react-router-dom'
// 这几个名字是不能随意更改的(我试过)


// 还有一种方式 HashRouter(代码不需要变动)和上面的一样不过在地址栏里面会多一个井号
class ComponentRouter extends Component{
  render(){
    // 路由
    return (
    <Router>
      {/* 不过是在路由上面包裹了一层Router */}
      {/* route有两个参数一个是component一个是path和vue一样 */}
      {/* Link 也是和vue一样  to属性 */}
      <div>
       <Route path="/a" component={RouterA}></Route>
       <Route path="/b" component={RouterB}></Route>
      </div>
    </Router>
    )
  }
}
const RouterA=()=>{
  return (<span>这是路由A</span>)
}
const RouterB=(props)=>{
  // 如果想要使用编程式导航则自身必须被设置成路由才能从props获取到history(可能说的不对但是是我自己理解的意思)
  const toa=()=>{
    // history不仅仅有push 还有go...可以打印看看和看文档
    props.history.push("/a")
  }
  return (<span onClick={toa}>这是路由B </span>)
}

export  default ComponentRouter

// 这里省略了...渲染到页面上 ReactDom.render(...,...)

路由的匹配模式 模糊匹配和准确匹配

import react,{Component} from 'react'
import reactDom, { render } from 'react-dom'
import {BrowserRouter as Router,Route,Link} from 'react-router-dom'

// 模糊匹配模式 是路由默认的匹配模式
// 只要path="/a" 包含就会匹配成功

class DefualtRouter extends Component{
  render(){
    return (
      <Router>
        {/* 默认路由 (他有一个缺点react中的路由path匹配是模糊匹配 )结果就是不管匹配什么带/都会匹配到默认路由home */}
        <Route path='/' component={Home}></Route>
        {/* 模糊匹配 地址栏中 只要包含/b那么就会匹配到  B的组件 */}
        <Route path='/b' component={B}></Route>
        {/* 精确路由匹配 地址栏只有完全准确的时候才会匹配到此路由 给路由添加(exact)关键字就行*/}
        <Route exact path="/c" component={c}></Route>
      </Router>
    )
  }
}
const Home=()=>{
  return (<span>Home</span>)
}
const B=()=>{
  return (<span>这是B</span>)
}
const c=()=>{
  return (<span>这是C</span>)
}
export default DefualtRouter

到此为止react也快学习的差不多了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值