react实现菜单权限控制的方法

前端之家收集整理的这篇文章主要介绍了react实现菜单权限控制的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

通常公司的后台管理系统都需要权限控制,即不同的角色用户看到不同的菜单,如下图:

下面,通过react实现这样的后台管理系统(脚手架),功能简介:

1.顶部的菜单项根据用户的角色动态生成

2.侧边测菜单项根据已选的顶部菜单动态生成

直接上代码

路由配置:

)

顶部菜单项单独成了一个组件:

跳转 import { connect } from 'react-redux' import { fetchPostsIfNeeded,updateSubMenuWhenClick } from '../actions/count' import { Menu } from 'antd'; class TopMenu extends Component { constructor(props){ super(props); this.handleMenuClick = this.handleMenuClick.bind(this); }

handleMenuClick(e){
// console.log(e.item.props['data-menukey']);
const { updateSubMenuWhenClick } = this.props
updateSubMenuWhenClick(true,e.item.props['data-menukey'])
}
componentWillMount() {
}
componentDidMount() {
const { fetchPostsIfNeeded } = this.props
fetchPostsIfNeeded()
}
render() {
const { menuList,fetchPostsIfNeeded } = this.props
if(menuList.length != 0) {
fetchPostsIfNeeded(true,menuList[0].key)
}

return (
  <Menu
    theme="dark"
    mode="horizontal"
    defaultSelectedKeys={['0']}
    style={{ lineHeight: '64px' }}
    onClick={this.handleMenuClick}
  >
  {
    menuList.map((e,index) => 
      <Menu.Item key={index} data-menukey={e.key} >
        <Link to={{ pathname: e.url }} >{e.name}</Link>
      </Menu.Item>
    )
  }
  </Menu>
)

}
}

const getList = state => {
return {
menuList: state.update.menuList
}
}

export default connect(
getList,{ fetchPostsIfNeeded,updateSubMenuWhenClick }
)(TopMenu)

在render函数中,如果动态生成的顶部菜单数据长度不为0,则根据顶部菜单的key动态生成侧边菜单项。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

猜你在找的JavaScript相关文章