react前端路由和后端路由的区别是什么

 3369

react前端路由后端路由的区别:1、前端路由通过“react-router”中的Link标签来触发,后端路由通过ajax来触发;2、前端路由基于浏览器事件监听,而后端路由基于http通讯协议;3、前端路由可以实现局部渲染,而后端路由实现重新渲染整个页面。


react前端路由和后端路由的区别是什么


react前端路由和后端路由的区别是什么

后端路由的机制

懂后端的同学都知道,后端路由是后端在app.js中注册后端路由函数,前端通过ajax触发相应的路由回调函数(以express为例)

触发: ajax

响应: app.get('/router',callback)

原理: 基于http通讯协议

  1. //app.js
  2. app.get('/', (request, response) => {
  3.   let ret = {
  4.   "success": true,
  5.   "code": 200,
  6.   "message": "",
  7.   "data": [],
  8.   }
  9.    
  10.   response.send(ret)
  11. })


前端路由的机制

而前端路由(指react-router)是,前端在router.js中注册前端路由与组件映射,前端通过Link设置的路由或在浏览输入相应路由引起组件渲染:

触发: react-router中的Link标签

响应: 渲染Rout标签中对应组件

原理: 基于浏览器中hash(React-Router v2之前),history(React-Router v4)

  1. //index.js
  2. class ListContent extends Component {
  3.   constructor(props){
  4.     super(props);
  5.     this.state = {
  6.     }
  7.   }
  8.    
  9.   render() {
  10.     return (
  11.       <Row>
  12.           <Button>
  13. +            <Link to="/topic"> 发布话题 </Link>
  14.           </Button>
  15.       </Row>
  16.     );
  17.   }
  18. }
  19. //router.js
  20. <Router>
  21.     <div>
  22.       <Header/>
  23.           <Switch>
  24.             <Route exact path="/" component={index} />
  25.             <Route exact path="/topic" component={topic} />
  26.           </Switch>
  27.     </div>
  28. </Router>

在router.js中header组件会一直存在页面中, 而Switch标签中的组件只会在触发后渲染,可简单理解为未触发组件为null,不显示

所以形成了局部渲染

  1. //若触发前端路由'/topic',则index组件不渲染
  2. <Router>
  3.     <div>
  4.       <Header/>
  5.           <Switch>
  6.             <Route exact path="/" component={null} />
  7.             <Route exact path="/topic" component={topic} />
  8.           </Switch>
  9.     </div>
  10. </Router>


前端路由和后端路由的区别

前端路由基于浏览器事件监听,不通过http通讯协议

前端路由局部渲染, 后端重新渲染整个页面,相对来说前端路由体验好点


本文网址:https://www.zztuku.com/detail-12487.html
站长图库 - react前端路由和后端路由的区别是什么
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐