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

广东网站推广策略企业网站建设方案机构

广东网站推广策略,企业网站建设方案机构,杭州最好的设计公司,凡客网上做的网站能否更改域名push 与 replace 模式 默认情况下,开启的是 push 模式,也就是说,每次点击跳转,都会向栈中压入一个新的地址,在点击返回时,可以返回到上一个打开的地址 有时候页面不需要这么繁琐的跳转,我们可以…

push 与 replace 模式

默认情况下,开启的是 push 模式,也就是说,每次点击跳转,都会向栈中压入一个新的地址,在点击返回时,可以返回到上一个打开的地址
有时候页面不需要这么繁琐的跳转,我们可以开启 replace 模式,这种模式与 push 模式不同,它会将当前地址替换成点击的地址,也就是替换了新的栈顶

我们只需要在需要开启的链接上加上 replace 即可

<Link replace to={{ pathname: '/home/message/detail', state: { id: msgObj.id, title: msgObj.title } }}>{msgObj.title}</Link>

编程式路由导航

我们可以采用绑定事件的方式实现路由的跳转,我们在按钮上绑定一个 onClick 事件,当事件触发时,我们执行一个回调 replaceShow

这个函数接收两个参数,用来仿制默认的跳转方式,第一个是点击的 id 第二个是标题

我们在回调中,调用 this.props.location 对象下的 replace 方法

replaceShow = (id, title) => {this.props.history.replace(`/home/message/detail/${id}/${title}`)
}

同时我们可以借助 this.props.history 身上的 API 实现路由的跳转,例如 go、goBack 、goForward

go():借助history原生的go方法,跳几步根据参数决定
goBack():借助history原生的go方法,往后跳一步即可。
goForward():借助history原生的go方法,往后跳一步即可。

go(-1): 原页面表单中的内容会丢失;
this.$router.go(-1):后退+刷新;
this.$router.go(0):刷新;
this.$router.go(1) :前进back(): 原页表表单中的内容会保留;
this.$router.back():后退 ;
this.$router.back(0) 刷新;
this.$router.back(1):前进

withRouter

当我们需要在页面内部添加回退前进等按钮时,由于这些组件我们一般通过一般组件的方式去编写,因此我们会遇到一个问题,无法获得 history 对象,这正是因为我们采用的是一般组件造成的。

只有路由组件才能获取到 history 对象

因此我们需要如何解决这个问题呢

我们可以利用 react-router-dom 对象下的 withRouter 函数来对我们导出的 Header 组件进行包装,这样我们就能获得一个拥有 history 对象的一般组件

我们需要对哪个组件包装就在哪个组件下引入

// Header/index.jsx
import { withRouter } from 'react-router-dom'
// 在最后导出对象时,用 `withRouter` 函数对 index 进行包装
export default withRouter(index);

这样就能让一般组件获得路由组件所特有的 API

BrowserRouter 和 HashRouter 的区别

它们的底层实现原理不一样
对于 BrowserRouter 来说它使用的是 React 为它封装的 history API ,这里的 history 和浏览器中的 history 有所不同噢!通过操作这些 API 来实现路由的保存等操作,但是这些 API 是 H5 中提出的,因此不兼容 IE9 以下版本。

对于 HashRouter 而言,它实现的原理是通过 URL 的哈希值,但是这句话我不是很理解,用一个简单的解释就是

我们可以理解为是锚点跳转,因为锚点跳转会保存历史记录,从而让 HashRouter 有了相关的前进后退操作,HashRouter 不会将 # 符号后面的内容请求。兼容性更好!

地址栏的表现形式不一样

  • HashRouter 的路径中包含 # ,例如 localhost:3000/#/demo/test

刷新后路由 state 参数改变

  • 在BrowserRouter 中,state 保存在history 对象中,刷新不会丢
  • HashRouter 则刷新会丢失 state

转载自React 路由跳转.md

http://www.yayakq.cn/news/137779/

相关文章:

  • 厦门市建设工程造价协会官方网站wordpress友情链接做导航
  • 建筑兼职网站西平网站建设
  • tp框架做展示网站icp备案查询网官网
  • 公司网站制作方案给公司网站做seo的好处
  • 广东华业建设有限公司网站人类命运共同体
  • 自己做的网站怎么在百度能搜到发外链平台
  • 长沙商城网站建设报价公示沙田网站仿做
  • 效果好网站建设哪家好网站开发容易找工作吗
  • 广汉市建设局官方网站wordpress网站基础知识
  • 购物网站用那个软件做定制直播app
  • 营销型网站建设风格设定包括哪些方面wordpress开头空两格
  • 晋江网站建设qzdzi长尾词seo排名
  • photoshop 做网站fw可以做网站
  • 长沙培训网站制作营销的主要目的有哪些
  • 青岛可以做网站的公司代理记账一般多少钱一个月
  • wordpress建立移动m站wordpress主题修改ftp
  • 校园网站安全建设方案南昌做网站的公司多不多
  • 哪个网站做高仿衣服wordpress 4.4.1 中文
  • 深圳市作网站的公司安徽省建设行业个人信息
  • 电商网站及企业微信订烟自贡在线最新消息
  • 织梦响应式茶叶网站慧宇巅峰网络-烟台网站建设公司
  • 网站网站服务器安康市城市建设局网站
  • 徐州网站简介电气毕业设计代做网站
  • 有哪些专门做创意门头的网站做服装招聘的网站有哪些内容
  • 购买网站模板怎么用短视频制作软件
  • 栾城哪家公司做网站东莞出租车公司
  • 安阳网站优化公司推荐网站权重能带来什么作用
  • 做平面设计兼职的网站做企业网站哪里找
  • 销售型企业网站有哪些山东seo推广多少钱
  • 音乐网站毕业设计代码外贸自建站平台怎么找