当前位置: 首页 > news >正文

织梦cms做视频网站全网品牌推广公司

织梦cms做视频网站,全网品牌推广公司,建投商务网客服电话,使用本地主机做网站react-router-dom react的路由 react路由现在是4.版本,使用的是react-router-dom,3.的版本使用的是react-riuter路由的模式有两种 老浏览器提供的 hash模式, 我们称之为: HashRouterH5提供的的 hsitory 模式,我们称之…

react-router-dom react的路由

  1. react路由现在是4.+版本,使用的是react-router-dom,3.+的版本使用的是react-riuter
  2. 路由的模式有两种
  • 老浏览器提供的 hash模式, 我们称之为: HashRouter
  • H5提供的的 hsitory 模式,我们称之为 BrowserRouter
    注意: H5模式的路由需要后端支持

路由的搭建

hash路由 ( HashRouter路由 )

先安装 react-router-dom npm i react-router-dom -S yarn add react-router-dom
在入口文件中配置router

index.js文件代码

//在入口文件中配置router
import { HashRouter as Router } from 'react-router-dom'   // hash路由ReactDOM.render(<Router>   //使用Router将App包裹起来<App /></Router>,
document.getElementById('root')
);
在App.js中配置路由
    
import React from 'react';
import './App.css';
import { Route,Switch } from 'react-router-dom'//Switch表示使用之后就会完全匹配路由,注意这里是  Route  你是Routerimport Home from './pages/home'//这些文件需要自己创建,路由文件
import List from './pages/list'
import Shop from './pages/shop'
import Login from ' ./pages/Login 'function App() {return (<div className="App"><a href = " #/Home "> Home </a>//hash需要带上 # 号<a href = " #/List "> Home </a><a href = " #/Shop "> Home </a><a href = " #/Shop/login "> Home </a><Switch><Route path = "/" component = { Home } exact></Route>  //重定向,网页打开直接跳转的页面,如果不加exact会有两个内容出现<Route path = "/Home" component = { Home } ></Route>//路径前不要加 点 .   component跳到表示组件<Route path = "/List" component = { List }></Route>  // 是Route,不是Router<Route path = "/Shop" component = { Shop } exact></Route>//二级路由<Route path = "/Shop/login" component = { Shop } render = { ()=>{ return <div> login </div> } }></Route></Switch></div>);
}
export default App;

二级路由

        //函数内可以返回一段结构<Route path = "/Shop/login" component = { Shop } render = { ()=>{ return <div> login </div> } }></Route>//也可以返回一个组件,component后面的组件要相对应改,写法挺多的,怎么写都可以<Route path = "/Shop/login" component = { Shop } render = { ()=>{ return <Login /> } }></Route><Route path = "/Shop/login" component = { Shop } render = { ()=>{ return Login } }></Route><Route path = "/Shop/login" component = { Shop } render = { ()=>{ return { Login } </div> } }></Route>//  还一种写法是在子组件中写二级路由,相对应的二级路由和子组件写在一个文件夹import React,{Component} from 'react';
import { NavLink,Route } from 'react-router-dom'import Login from './Login.js'
import Register from './Register.js'class Shop extends Component{componentWillUpdate () {console.log('luyou gaibian ')}render () {return (<div>Shop<NavLink to = "/shop/login"> 登录 </NavLink><NavLink to = "/shop/register"> 注册 </NavLink><NavLink to = "/shop"> a </NavLink><NavLink to = "/shop"> b </NavLink>//路由显示区域<Route path = "/shop/login" component = { Login }></Route><Route path = "/shop/register" component = { Register }></Route></div>)}
}
export default Shop

H5的history路由 (BrowserRouter 路由 )

先安装 react-router-dom npm i react-router-dom -S yarn add react-router-dom
在入口文件中配置router

index.js文件代码

//在入口文件中配置router
import { BrowserRouter as Router } from 'react-router-dom'   // h5的history模式ReactDOM.render(<Router>   //使用Router将App包裹起来<App /></Router>,
document.getElementById('root')
);

在App.js中配置

Link和NavLink的区别是,NAvLink可以渲染激活路由,Link只是普通路由

    
import React from 'react';
import './App.css';import { Route,Link,Switch,NavLink} from 'react-router-dom'//Switch表示只渲染一个import Home from './pages/home'
import List from './pages/list'
import Shop from './pages/shop'function App() {return (<div className="App">//使用了NavLink之后,就不能使用 href了,需要改成 to ,h5的路由路径前不需要带上丑陋的小井号<NavLink activeClassName = "active" to = "/Home" > Home </NavLink><NavLink activeClassName = "active" to = "/List"> List </NavLink><NavLink activeClassName = "active" to = "/Shop"> Shop </NavLink><NavLink activeClassName = "active" to = "/shop/login"> login </NavLink>//二级路由<Switch>//只渲染一个<Route path = "/" component = { Home } exact></Route><Route path = "/Home" component = { Home } ></Route><Route path = "/List" component = { List }></Route><Route path = "/Shop" component = { Shop } exact></Route><Route path = "/Shop/login" component = { Shop } render = { ()=>{ return <div> login </div> } }></Route>//错误路由匹配,必须写在<Switch>之中,不然错误路由的内容会一直显示,直接写component,不写path<Route component = { Error }></Route></Switch></div>);
}
export default App;

激活路由

       //使用NavLink ,在App.css中写一个active的类名样式,类名要小心重复,然后使用  activeClassName = " 类名 "<NavLink activeClassName = "active" to = "/Home" > Home </NavLink>
http://www.lbrq.cn/news/2557027.html

相关文章:

  • 洛阳网站设计哪家专业夫唯seo视频教程
  • 微信微网站建设平台网站可以自己做吗
  • 备案 网站软文范例大全200字
  • 青岛网站制作企业拼多多关键词优化步骤
  • 网站安全制度体系的建设情况成人职业培训机构
  • 建设外卖网站规划书百度地图导航网页版
  • 网站第三方评价如何做合肥百度快照优化排名
  • 做网站的软件帝国成人短期培训学校
  • 网站建设分类百度seo排名优化公司推荐
  • 服务器做网站宁德市人社局官网
  • 中核二二公司真实情况潍坊关键词优化平台
  • 企业网站建设需要许可证吗设计师网站
  • 重庆网站建站建设免费滨州网站seo
  • 韶关网站建设价格社会新闻最新消息
  • 不用服务器做视频网站吗seo外包服务专家
  • 网站域名在哪里看怎么做一个属于自己的网站
  • flash网站做seo优化好不好aso优化重要吗
  • 学校建设网站目标google国外入口
  • 誉重网站建设公司seo外包方案
  • vps被攻击网站打不开ping值高灰色广告投放平台
  • 北京网站制作南昌长春最专业的seo公司
  • 网页设计一个多少工资移动端关键词排名优化
  • 网站建设 软件开发2021最近最火的关键词
  • 重庆网站制作开发南通做网站推广的公司
  • 广告行业做网站哪个好游戏推广员好做吗
  • 自助建设网站软件网页制作软件下载
  • 网站制作公司 顺的saas建站
  • 建设手机行网站软文写作服务
  • 代码重构网站站长工具 seo查询
  • 建站素材网今日油价92汽油价格表
  • S7-1200 /1500 PLC 进阶技巧:组织块(OB1、OB10)理论到实战
  • 什么是网络安全?网络安全包括哪几个方面?学完能做一名黑客吗?
  • [论文阅读] 人工智能 + 软件工程 | KnowledgeMind:基于MCTS的微服务故障定位新方案——告别LLM幻觉,提升根因分析准确率
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现裂缝的检测识别(C#代码UI界面版)
  • Redis学习------缓存穿透
  • 算法训练营day36 动态规划④ 1049. 最后一块石头的重量 II、494. 目标和、474.一和零