欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

react中的插槽和路由导航守卫

程序员文章站 2022-04-09 17:10:07
在学习路由导航守卫之前,我们需要先学习一下,react中的插槽react的插槽function DetailTitle(props){ return
{props.children[0]}新闻标题
}function Detail(props){ return (
...

在学习路由导航守卫之前,我们需要先学习一下,react中的插槽

react的插槽

function DetailTitle(props){
    return <div>{props.children[0]}新闻标题</div> //我是新闻标题
}

function Detail(props){
    return (
                <div>
                    <DetailTitle>
                        <span>我是</span>
                        <span>欢迎!</span>
                    </DetailTitle>
            		<p>新闻内容</p>
                </div>
            )
}

路由导航守卫

function CheckLogin(props) {
  const isLogin = localStorage.getItem("token") ? true : false;
  return (
    <Route
      render={() => {
        return isLogin ? props.children : <Redirect to="/login" />;
      }}
    ></Route>
  );
}

Route组件需要点击才能触发,render函数可以模拟点击效果

使用

<NavLink to='/center'>个人中心</NavLink>

<CheckLogin path='/center'>
	<Center />  {/* 注意:此时的Center是通过render函数渲染出来的,不是一个路由组件了。props不会含有路由相关的信息 */}
</CheckLogin>

如果那个组件,需要这个导航守卫,就用CheckLogin包裹一下这个组件

本文地址:https://blog.csdn.net/qq_38053677/article/details/109231289

相关标签: React reactjs