收集面试题

180 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

什么是RBAC的权限设计思想

采用方案: RBAC的权限模型,RBAC(Role-Based Access control) ,也就是基于角色的权限分配解决方案

其权限模式如下:

image.png

三个关键点: 员工, 角色, 权限

  1. 给员工分配角色
  2. 给角色分配权限

打个比方,比如多个用户拥有相同的权限,在分配的时候就要分别为这几个用户指定相同的权限,修改时也要为这几个用户的权限进行一一修改。有了角色后,只需要为该角色制定好权限后,将相同权限的用户都指定为同一个角色即可,便于权限管理。对于批量的用户权限调整,只需调整用户关联的角色权限,无需对每一个用户都进行权限调整,既大幅提升权限调整的效率,又降低了漏调权限的概率。

自定义指令的钩子函数有哪些

一个指令定义对象可以提供如下几个钩子函数 (均为可选):

  • bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。

  • inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。

  • update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。

  • componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。

  • unbind:只调用一次,指令与元素解绑时调用。

简述一下如何封装组件

封装组件以更可以分为三步

  1. 根据项目需求创建一个组件
  2. 在根组件中引入这个组件
  3. 利用components注册这个组件 4.在合适的位置使用着这个组件

Vue优化方式

  • v-if 和v-show
  • 使用Object.freeze()方式冻结data中的属性,从而阻止数据劫持
  • 组件销毁的时候会断开所有与实例联系,但是除了addEventListener,所以当一个组件销毁的时候需要手动去removeEventListener
  • 图片懒加载
  • 路由懒加载
  • 为减少重新渲染和创建dom节点的时间,采用虚拟dom

Vue-router有哪几种钩子函数

  • beforeEach

    • 参数有

      • to(Route路由对象)
      • from(Route路由对象)
      • next(function函数) 一定要调用才能进行下一步
  • afterEach

  • beforeRouterLeave

Vue中的nextTick

  • nextTick

    • 解释

      • nextTick:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
    • 应用

      • 想要在Vue生命周期函数中的created()操作DOM可以使用Vue.nextTick()回调函数
      • 在数据改变后要执行的操作,而这个操作需要等数据改变后而改变DOM结构的时候才进行操作,需要用到nextTick