/*
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
*/