Recoil源码分析

 

 

 

/*
Atom Selector 是继承自Stateful

atom selector 用于构建实例

核心Stateful内部维护了一个Set subscribe emit 是基于发布订阅来做的

useRecoilState包含useRecoilValue
-------
内部

useRecoilValue调用时会穿进一个 const [,setState] = usesState({}) useRecoilValue会调用suscribe把方法穿进listeners中
并执行atom.snapshot()
useRecoilState会暴漏update方法

内部
------

最后返回一个[value,setState]
执行时会调用emit方法遍历listeners刷新界面

selector内部存储了registerAtom(Set)执行时会把atom.get穿进Selector类中,执行方法并给get赋值为一个函数addSub

addSub 返回snapshot ,addSub里会调用subscribe将updateSelector穿进listeners
*/

  

 

 

posted @ 2022-02-28 11:20  国服第一李师师  阅读(121)  评论(0编辑  收藏  举报