前端经典react面试题(持续更新中)

React必须使用JSX吗?

React 并不强制要求使用 JSX。当不想在构建环境中配置有关 JSX 编译时,不在 React 中使用 JSX 会更加方便。

每个 JSX 元素只是调用 React.createElement(component, props, ...children) 的语法糖。因此,使用 JSX 可以完成的任何事情都可以通过纯 JavaScript 完成。

例如,用 JSX 编写的代码:

class Hello extends React.Component {
   
  render() {
   
    return <div>Hello {
   this.props.toWhat}</div>;
  }
}
ReactDOM.render(
  <Hello toWhat="World" />,
  document.getElementById('root')
);

可以编写为不使用 JSX 的代码:

class Hello extends React.Component {
   
  render() {
   
    return React.createElement('div', null, `Hello ${
     this.props.toWhat}`);
  }
}
ReactDOM.render(
  React.createElement(Hello, {
   toWhat: 'World'}, null),
  document.getElementById('root')
);

用户不同权限 可以查看不同的页面 如何实现?

  1. Js方式
    根据用户权限类型,把菜单配置成json, 没有权限的直接不显示
  2. react-router 方式 在route 标签上 添加onEnter事件,进入路由之前替换到首页
<Route path="/home" component={
   App} onEnter={
   (nexState,replace)=>{
   
      if(nexState.location.pathname!=='/'){
   
         var  sid = UtilsMoudle.getSidFromUrl(nexState);
         if(!sid){
   
            replace("/")
         }else{
   
            console.log(sid);
         }
      }
    }}>
  1. 自己封装一个privateRouter组件 里面判断是否有权限,有的话返回

    没有权限的话component 返回一个提示信息的组件。

  2. 扩展一下,如果是根据用权限来判断是否隐藏组件该怎么做呢?
    react 可以使用高阶组件,在高阶组件里面判断是否有权限,然后判断是否返回组件,无权限返回null
    vue 可以使用自定义指令,如果没有权限移除组件

// 需要在入口处添加自定义权限指令v-auth,显示可操作组件
Vue.directive(
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值