小工具知识网

当前位置: 首页 > 行业知识 > React Switch用法及手写Switch实现

行业知识

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;

上一篇:出租网易服务器怎么租的?

下一篇:Linux安装MySQL8.0(超详细图文)