使用位运算来做用户鉴权

本文介绍了Vue3在VisualDOM的patch操作中如何使用位运算进行用户鉴权,通过查看vue3源码,阐述了PatchFlags的定义和类型,并以chmod 777为例,详细解释了如何利用位运算实现鉴权系统,包括赋权和鉴权的逻辑。同时,鼓励读者深入研究renderer.ts中位运算的实际应用。
摘要由CSDN通过智能技术生成

使用位运算来做用户鉴权其实并不是一件新鲜事,已经有不少人讲过了。不过最近在看vue3源码的时候发现vue3在对VisualDOM做patch操作的时候竟然也使用了位运算进行flag的判断,便忽然来了兴趣,想要好好说道说道。

首先来看看vue3源码,已经去除了不必要的注释

patchFlags是VisualDOM中对vnode的类型标记,在更新DOM树的时候会根据vnode的类型来使用不同的更新策略,这里不展开说了,我们主要看这里对类型的定义。
(patchFlags.ts Github源码地址)

// Patch flags can be combined using the | bitwise operator and can be checked
// using the & operator, e.g.
//
//   const flag = TEXT | CLASS
//   if (flag & TEXT) { ... }
//
// Check the `patchElement` function in './renderer.ts' to see how the
// flags are handled during diff.

export const enum PatchFlags {
   
  TEXT = 1,
  CLASS = 1 << 1,
  STYLE = 1 << 2,
  PROPS = 1 << 3,
  FULL_PROPS = 1 << 4,
  HYDRATE_EVENTS = 1 << 5,
  STABLE_FRAGMENT = 1 << 6,
  KEYED_FRAGMENT = 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值