首页 > 其他分享 >React-router

React-router

时间:2022-11-17 20:24:24浏览次数:48  
标签:react 渲染 React 跳转 组件 router 路由

使用React构建单页面应用,要想实现页面间的跳转,首先想到的就是使用路由
下载:
npm install react-router-dom
//或者
yarn add react-router-dom

路由组件:
BrowserRouter

BrowserRouter:
为一个容器,用来放Route,Link

导入(引入)路由组件:
import {BrowserRouter,Router,Route,Link} from "react-router-dom"

 使用:
<BrowserRouter>
    <Routes>
       // Route相当于vue中的router-view:要渲染展示在哪里
       // Link相当于 vue中的router-link:要到哪里去
       <Route path='/index' element={<Index />} />
       <Route path='/demo' element={<Demo/>} />
    </Routes>
</BrowserRouter>

注: 在react里使用类名属性:className,因为class在react里是类的关键字

a标签:
<a></a>==><Link to="/home"></Link> 跳转到首页

需要将跳转,做路由配置的页面用BrowserRouter包裹起来
<BrowserRouter>
    ....
    // 页面内容
     <Link to="/home"></Link>
     ...
     <Link to="/department"></Link>
     ...
      <Link to="/search"></Link>
     ...
</BrowserRouter>

当我点击对应的跳转时,url也跟着变:
url: localhost:3000/search
     localhost:3000/home
     localhost:3000/department

渲染:需要和跳转的路径进行匹配,to=>path,渲染路由信息
<BrowserRouter>
    <Routes>
       <Route path='/search' element={<Search/>} />
       <Route path='/home' element={<Home/>} />
       <Route path='/department' element={<Department/>} />
    </Routes>
</BrowserRouter>

to是匹配这个地址
path就是这个地址

匹配到这个地址之后,我们需要渲染的组件通过什么来展示:
element

那我具体渲染的组件是那个呢?
element = {<Add />}

那我渲染的组件在那呢?
我们需要提前将它导入进来 import Search form "./project/Search"

路由跳转:Link组件,NavLink组件
一致:功能都是跳转
区别:NavLink组件的style或者是class属性可以接收一个函数,
而函数可以接受一个isActive参数,isActive可以调整样式

//实现导航菜单切换的样式:
<NavLink to='/home' className={({isActive})=>{isActive?'selected':''}}></NavLink>

标签:react,渲染,React,跳转,组件,router,路由
From: https://www.cnblogs.com/strundent/p/16900557.html

相关文章

  • 几种常见的React Hooks
    useStateuseState,让函数组件拥有了维持状态的功能。维持状态是指在函数的多次渲染之间,这个state是可以在函数中间共享的使用方式importReact,{useState}from'reac......
  • ReactNote-函数组件和类组件
    组件:可以编写react元素虚拟DOM:react元素真实的DOM:可以展示React里很重要的:组件组件目的:复用组件作用:代码分隔组件在React里有两种定义的方式:第一种:......
  • 视频直播app源码,react 编程式导航实现页面跳转
    视频直播app源码,react编程式导航实现页面跳转一介绍编程式导航:通过js代码来实现页面跳转 案例:点击登录按钮,登录成功后,通过代码跳转到后台首页,如何实现? 答......
  • ReactNote-JSX
    第一个加载的组件就是APP:<APP/>当前咱们指定的DOM就是root:ReactDOM.createRoot(document.getElementById('root'));root在那个地方:react-app/public/index.html......
  • vue router keepalive 未生效的原因
    组件文件名称和组件名称不一致。如图,文件名称为index.vue,但是name为Review,两者不一致,导致缓存页面不成功。 解决方案:第一种:在index.vue中手动设置component的名称为......
  • React-App环境搭建和项目启动
    node环境>=14.0.0npm环境>=5.6安装create-react-app:npmi-gcreate-react-app(cnpm/yarn)创建项目:create-react-appreact-project(项目名称)进入项目根目录:cdreact-p......
  • 手动实现 vue3 [ reactive, computed, watch ]
    一、vue.js1importreactivefrom"./reactive";2importWatcherfrom"./Watcher";3importcomputedfrom"./computed";4importwatchfrom"./watch";56ex......
  • vue-router的使用
    安装npminstallvue-router--save路由映射配置创建router文件夹新建index.js vue实例中挂载router  使用路由<router-link></router-link><rou......
  • vue-router
    路由理解:一个路由(route)就是一组映射关系(key-value),多个路由需要路由器(router)进行管理。前端路由:key是路径,value是组件。生活里的路由与路由器路由分类1.后端路......
  • vue3+Ts+Vite+ElementPlus+Axios+Router+Pinia 创建过程以及会出的错误
    第一步保证Node.Js版本为12.0以上打开cmd命令输入node-v看版本目前是最新用18.0就行,下载地址:[https://nodejs.org/en/](https://nodejs.org/en/)安装node.js配环境......