从零开始到完整的React后台管理项目开发路程(第四节)

在这里插入图片描述

一、用户登陆成功后如何保存用户信息

如何维持登陆、免登陆

  1. 登陆后,刷新依然是登陆状态
  2. 登陆后,关闭浏览器打开浏览器依然可以是登陆状态
  3. 登陆后,访问登陆路径自动跳转到首页

原生的localStroge兼容性不够,所以引入store库来存

 src/utils/storageUtil.js

import store from 'store'
const USER_KEY = 'user_key'
export default {
    /**
     * 保存user
     */
    saveUSer(user) {
        // localStorage.setItem(USER_KEY,JSON.stringify(user)) // 原生的localStroge兼容性不够,所以引入store库来存
        store.set(USER_KEY,user)
    },
    getUSer() {
    //    return JSON.parse(localStorage.getItem(USER_KEY) || '{}')// 无值返回null
          return store.get(USER_KEY) || {}
    },
    removeUser() {
        // localStorage.removeItem(USER_KEY)
        store.remove(USER_KEY)
    }
}
二、登陆成功后的页面怎么设计

分为上、左、右
在这里插入图片描述
这里有个关于路由导航的渲染方法,我一共尝试了两种方法写,可以看看具体讲解

/* 管理路由组件 */
 class Admin extends React.Component {
    render() {
       const user = this.props.user
        if (!user._id || !user) { // 当前没有登录
            // 自动跳转到登录(在render()中)
            return <Redirect to='/login' />
        }
        return (
            <Layout className="main">
                <Sider className="left_nav">
                    <LeftNav />
                </Sider>
                <Layout>
                    <Header className="top_hd">
                        <TopHeader></TopHeader>
                    </Header>
                    <Content className="main_bd">
                        {/* 配置路由 地址栏输入后去下面寻找匹配*/}
                        <Switch>
                            <Redirect exact={true} from="/" to='/home' /> 
                            {/* exact代表精准匹配 */}
                            <Route path='/home' component={Home} />
                            <Route path='/category' component={Category} />
                            <Route path='/charts/bar' component={Bar} />
                            <Route path='/charts/line' component={Line} />
                            <Route path='/charts/pie' component={Pie} />
                            <Route path='/role' component={Role} />
                            <Route path='/user' component={User} />
                            <Route path='/product' component={Product} />
                            {/* 默认页面 */}
                            <Route component={NotFound} />
                        </Switch>
                        
                    </Content>
                    <Footer className="footer">由 pretty 开发</Footer>
                </Layout>
            </Layout>
        )
    }
}
export default connect(
    state => ({user:state.user}),{}
)(Admin) 

样式的详细style代码可以在项目里查看

三、左侧部分路由设计

参考的是Ant design的导航路由
在这里插入图片描述

四、右侧顶部栏设计

在这里插入图片描述
其中有个天气模块,需要先去申请appkey

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那就可爱多一点点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值