行业知识
React Switch用法及手写Switch实现
2026-11-03 21:36:26
来源:互联网转载
问:如���注册的路由特别多,找到一个匹配项以后还会一直往下找,我们想让react找到一个匹配项以后不再继续了,怎么处理?
答:独特之处在于它只绘制子元素中第一个匹配的路由元素。
如果没有,直接使用一堆,则每个与当前路径匹配的都会被绘制
switch 作用
通常情况下,path和component是一一对应的
Switch可以提高路由匹配效率(单一匹配,谁在前面,先匹配谁)
独特之处在于它只绘制子元素中第一个匹配的路由元素。
如果没有,直接使用一堆,则每个与当前路径匹配的都会被绘制
Switch 使用方法:
Switch 手写代码实现
import React from 'react';import matchPath from './matchPath';import RouterContext from './RouterContext';class Switch extends React.Component{ static contextType = RouterContext; render(){ const {location} = this.context; let element,match; React.Children.forEach(this.props.children,route=>{ //一旦有一个匹配了,后面的就不再匹配了 if(!match && React.isValidElement(route)){ element = route; match = matchPath(location.pathname,route.props); } }); return match?React.cloneElement(element,{computedMatch:match}):null; }}export default Switch; 上一篇:出租网易服务器怎么租的?