React like hooks with Vue3 composition API
import { ref, readonly, UnwrapRef, provide, inject, InjectionKey } from 'vue'
export const useState = <T>(defaultValue: T): any => {
const state = ref(defaultValue)
const set = (value: T): void => {
state.value = value as UnwrapRef<T>
}
return [readonly(state), set]
}
export interface FunctionalStore<T extends object> {
(...args: any[]): T
token?: symbol
root?: T
}
export function useProvider<T extends object>(func: FunctionalStore<T>): T {
if (!func.token) func.token = Symbol('functional store')
const depends = func()
provide(func.token, depends)
return depends
}
export function useProviders(...funcs: FunctionalStore<any>[]): any {
funcs.forEach((func) => {
if (!func.token) func.token = Symbol('functional store')
provide(func.token, func())
})
}
type InjectType = 'root' | 'optional'
export function useInjector<T extends object>(func: FunctionalStore<T>, type?: InjectType): any {
const token = func.token as InjectionKey<symbol>
const root = func.root
switch (type) {
case 'optional':
return inject<T>(token) || func.root || null
case 'root':
if (!func.root) func.root = func()
return func.root
default:
if (inject(token)) {
return inject<T>(token)
}
if (root) return func.root
throw new Error(
`Hook function '${func.name}' was not provided from upper leval component by calling 'useProvider'.`
)
}
}
03:可露希尔的罗德岛导览!
档案来源:lambda:\罗德岛内务\秘密档案
发布时间:5/23 1:00 P.M.
档案类型:可见
档案描述:博士毫不犹豫地答应去参观商店街
提供者:可露希尔 [泰拉记事社的微博视频](http://t.cn/A6VfjlX2)
恭喜 @94号星球的送葬人 等30名用户获得【棋子周边一份】。微博官方唯一抽奖工具 @微博抽奖平台 - [豪华版](http://t.cn/A6Vqvbn5) 对本次抽奖进行监督,结果公正有效。公示链接: [微博抽奖平台](http://t.cn/A6Vt3t93)
博士博士,你真的了解罗德岛上的每一位干员吗?
硕大的罗德岛内,每天都在不断发生着不为人知的故事~
干员们在罗德岛上的生活,也是他们人生的重要部分哦!而这些将会由我们罗德岛内特别爱闲逛的干员们顺手记录!
明日方舟官方四格漫画《罗德岛闲逛部》正式上线!闲逛部成员将为博士带来第一手罗德岛干员们的生活记录!
官方漫画网站正式上线,官网链接: [网页链接](http://t.cn/A6VwD3xw)
关注 @明日方舟Arknights @泰拉记事社 并转发本微博,我们将会在5月21日通过 @微博抽奖平台 抽取30位博士赠送棋子周边一份(款式随机)。 [抽奖详情](http://t.cn/A6VtulAl)
智勇双全的守护者:
关于守护者近期反馈【流量消耗异常】的问题,团队接收到该情况反馈后立刻进行了问题排查,后发现是由于服务器供应商的部分线路问题,导致每次守护者连接到异常线路就会有额外流量消耗。截止5月20日17:00,团队已经将该问题修复完毕,期间给守护者带来的不便,我们深感歉意。
团队将为大家送上【钻石*600+传说中的觉醒石*3+体力*200+30级强化锤*3】,5月21日23:59登录之前的守护者可以通过全服邮件领取,运营团队再次对出现此问题而道歉,非常感谢大家的理解和支持。
《坎公骑冠剑》运营团队
Chinese 🇨🇳 / Dictatorial Admin / Mastodon Code Contributor / 摸鱼技术布道师
Steam: https://steamcommunity.com/id/MashiroBest
Epic: https://store.epicgames.com/en-US/u/d211c824cbd94aaeba898db6bb823ff7
原批交流群:966322309