老莫的笔记本  
  
查看: 270|回复: 0

React 使用 JS 跳转页面问题

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2022-6-30 16:15:14 | 显示全部楼层 |阅读模式
前提: 我谈的这个JS跳转 主要是React  17+  , 且react-router-dom  v6 【5不能用 天差地别】

教学视频是v5 啥玩意都用不上,一脸无奈 还得自己探索

都需要引入 :import { BrowserRouter, HashRouter, useNavigate , Link, Route, Router, Routes, NavLink ,Navigate} from "react-router-dom"; 跳转都需要用到  useNavigate


分类1  :   函数组件


export default function CssModelTest(){
   
        const navigate = useNavigate()

        function handleClick () {
            navigate('/login/res')
        }
        return (
            <>
            <div onClick={()=>{handleClick()}}>Login123</div>
                         <h1>这是登录页</h1>
            <section className={CssModelTestStyle.home}> 这是CssModelTest的组件 111</section>
            
            <NavLink to={'/login/old'} >老用户登录</NavLink>
            <NavLink to={'/login/new'}>新用户登录</NavLink>  
            <NavLink to={'/login/res'}>注册</NavLink>  
            
            <Routes >
                <Route path={'/'} element={<LoginOld />}  />
                <Route path={'old'} element={<LoginOld />}  />
                <Route path={'new'} element={<LoginNew />}  />
                <Route path={'res'} element={<LoginRes />}  />  
            </Routes>
            </>
        )
}




分类2  :  类组件 [这个就很坑,注意最后的 抛出]



  1. export const withNavigation = (PureComponent) => {
  2.     return (props) => <PureComponent {...props} navigate={useNavigate()} />;
  3. };

  4. class CssModelTest extends React.PureComponent{
  5.     render(){
  6.         return(
  7.             <>
  8.              <h1>这是登录页</h1>
  9.             
  10.             <NavLink to={'/login/old'} >老用户登录</NavLink>
  11.             <NavLink to={'/login/new/:16/:t'}>新用户登录</NavLink>  
  12.             <NavLink to={'/login/res'}>注册</NavLink>  
  13.             <button onClick={()=>{
  14.                 this.gowhere()
  15.             }}> 走吧 </button>
  16.             <Routes >
  17.                 <Route path={'/'} element={<LoginOld />}  />
  18.                 <Route path={'old'} element={<LoginOld />}  />
  19.                 <Route path={'new/:age/:name'} element={<LoginNew />}  />
  20.                 <Route path={'res'} element={<LoginRes />}  />  
  21.             </Routes>
  22.             
  23.             </>
  24.         )
  25.     }
  26.    
  27.     gowhere(){
  28.         this.props.navigate('/login/new');
  29.     }
  30. }



  31. export default withNavigation(CssModelTest);
复制代码








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表