在上篇的基础上做路由跳转:上篇

安装路由及代码:

安装:cnpm i -S react-router-dom

1.在pages里创建四个跳转页面

2.在src文件夹下创建router.js,router.js全部内容:

首先引入路由组件,

创建四个要跳转的<Route>标签,path是组建路径,component是组件名称

import React from 'react'
import {BrowserRouter,Route,Switch} from 'react-router-dom'
import Home from './pages/home'
import Category from './pages/category'
import Car from './pages/car'
import User from './pages/user'export default ()=>(<BrowserRouter><Switch><Route path='/home' component={Home}></Route><Route path='/category' component={Category}></Route><Route path='/car' component={Car}></Route><Route path='/user' component={User}></Route></Switch></BrowserRouter>
)复制代码

3.App.js全部内容:

首先引入routerMap,将RouterMap标签渲染在页面上

import React, { Component } from 'react';
import './App.css';
import './static/iconfont.css'
import RouterMap from './router'
class App extends Component {render() {return (<div className="App"><RouterMap/></div>);}
}export default App;
复制代码

4.将之前的Tabbar导航引入每个页面组件,目的让每个页面下面显示导航

import React,{Component} from 'react'
import Tabbar from '../components/tabbar'class Home extends Component{render(){return(<div><Tabbar/></div>)}
}export default Home复制代码

5.修改之前tabbar组件的内容,

首先引入Link,然后使用Link代替要跳转的div标签,

删去之前div的点击事件,因为Link标签渲染出来有a标签的效果,

修改数组,增加一条每个分页面url的数据,利用不同的url形成不同的点击,辨别去哪是高亮显示,

给Link加一个to={v.link},跳转至其他页面,

用const url = window.location.href; 获取当前页面的url

用加给路由 url.indexOf(v.link)>-1 监测当前url是否包含v.link中的地址  判定如果包含就给当前Link标签添加active类

import React,{Component} from 'react'
import {Link} from 'react-router-dom'
import './index.css'
const tarbarArr =[{img:'icon-home',text:'首页',link:'/home'},{img:'icon-fenlei',text:'分类',link:'/category'},{img:'icon-gouwuchekong',text:'购物车',link:'/car'},{img:'icon-yonghu',text:'我的',link:'/user'}
]
class Tabbar extends Component{constructor(props){super(props)this.state={index:0}}render(){const url = window.location.href;return(<div className="tabbar"><div className="tabbar-content">{tarbarArr.map((v,i)=>(<Link to={v.link} key={i} className={"tabbar-item"+(url.indexOf(v.link)>-1?' active':'')}><div className={"iconfont "+v.img}/><div>{v.text}</div></Link>))}</div></div>);}
}export default Tabbar;复制代码

最后效果

React 小案例 路由跳转相关推荐

  1. 微信小程序篇2 谈谈小程序路由跳转的方式有哪些

    微信小程序路由跳转的方式有哪些? 1. wx.navigateTo() 保存当前页面,跳转到应用内的某个页面.可以传递参数 [有缓存]. 2. wx.redirectTo() 保存当前页面,重定向到应 ...

  2. 小程序路由跳转,如何直接回到首页

    先看一下小程序的关于路由跳转的api //只能跳转到tabBar配置页面wx.switchTab({ url: '/pages/index/index',});//返回上一级页面(delta:返回的页 ...

  3. 微信小程序路由跳转详情

    1.路由跳转 微信小程序的路由跳转 是通过两个栈堆实现的,这就导致了栈堆里最多储存十个页面,如果超过十个,会直接报错,所以要在必要的时候清空栈堆. wx.navigateTo:最常用的跳转,跳转到另一 ...

  4. 微信小程序路由跳转的方式总结

    1. wx.navigateTo保留当前页面,跳转到应用内的某个页面.会将页面缓放在页面栈中,最多十个. 2. wx.redirectTo 关闭当前页面,跳转到应用内的某个页面,不会将当前页缓存在内存 ...

  5. 路由跳转时的页面状态保存

    前言 我们在开发网页时,经常会遇到一种情况--在一个页面对页面初始状态进行了修改(如已请求到的数据.表单数据.滚动高度等等),跳转到另外一个页面之后再返回到原页面(路由回退),原页面需要保持原先的状态 ...

  6. 小程序路由(返回上一级页面)

    项目场景: 小程序路由跳转问题 项目场景:点击分享链接,跳转至详情页:跳转详情页时需要判断当前用户有没有登录:没有登录跳转至登录页,登录后回到详情页(返回上一级页面) 问题描述 登录后不能返回详情页 ...

  7. 初学react实现路由跳转_如何使用React构建模因制作者:初学者指南

    初学react实现路由跳转 by Avanthika Meenakshi 通过Avanthika Meenakshi 如何使用React构建模因制作者:初学者指南 (How to build a me ...

  8. 小程序服务器搭建前后端交互,微信小程序:request前后端交互 路由跳转 存储数据到本地和获取 小程序登入 授权...

    一 request前后端交互 基本样式 wx.request({ url:'test.php', //仅为示例,并非真实的接口地址 data: { x:'', y:''}, header: {'con ...

  9. react实现路由跳转_react实现hash路由

    众所周知,目前单页面使用的路由有两种实现方式: hash 模式 history 模式 hash 模式 路由原理: 我们先来看hash模式,页面首次加载时需要在load事件中解析初始的URL,从而展示进 ...

最新文章

  1. 不做“浮冰”,深挖AI技术和场景
  2. python安装pip-安装pip的三种方法
  3. neo4j 知识图谱_知识图谱里的知识存储:neo4j的介绍和使用
  4. linux 文档编辑器 word,linux下vi编辑器命令大全
  5. 生宣、熟宣、半生半熟宣纸各有什么特点?初学书法用哪种宣纸好?
  6. 抓取Js动态生成数据且以滚动页面方式分页的网页
  7. Matlab在高等数学中应用
  8. android activitygroup tab,android 之用ActivityGroup 实现Tab分页
  9. 利用pdfminer3k 使用python语言提取PDF中的文本
  10. AcWing 1123. 铲雪车 题解(欧拉回路)
  11. BZOJ 5477: 星际穿越
  12. 好玩的Python库tqdm
  13. 常见即时通讯:网易IM 、腾讯IM、环信IM、融云IM、leancloud IM介绍
  14. Excel生成随机32、36位ID
  15. 毕业一年的组长,刚去了阿里做Devops。年薪40W的offer
  16. Java物流项目第五天 数据聚合服务开发(pd-aggregation)
  17. 关于疫情,他瞎说了30句大实话(待补充)
  18. java基础笔记05~汪汪汪~
  19. android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析
  20. simcom2G模块使用

热门文章

  1. 无法远程xp服务器,五步快速处理在WinXP下IIS无法远程访问的问题
  2. [Java] 蓝桥杯 BASIC-1 基础练习 闰年判断
  3. [swift] LeetCode 234. Palindrome Linked List
  4. 第七届 蓝桥杯 省赛 第九题 交换瓶子
  5. in最多可以放多少?_新手开店,放多少商品才能获取最多流量?
  6. 服务器上Oracle System如何修改system用户密码
  7. angularjs过滤器(number)
  8. MESSAGE: [unixODBC][MySQL][ODBC 3.51 Driver]Can't connect to local MySQL server through socket '/tmp
  9. 20050405:什么都要会啊
  10. 网络编程6_multiprocess模块.锁.队列