{"_id":"@bddh/starling-use-sync-ref","name":"@bddh/starling-use-sync-ref","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bddh/starling-use-sync-ref","description":"useRef 的同步版本","version":"1.0.0","license":"MIT","module":"es/index.js","main":"cjs/index.js","typings":"es/index.d.ts","scripts":{"build":"rm -rf cjs es && rollup -c --bundleConfigAsCjs","test":"jest","deploy":"npm publish --registry=https://registry.npmjs.org --access public"},"publishConfig":{"registry":"https://registry.npmjs.org"},"peerDependencies":{"react":">=17"},"gitHead":"3f0142446269ee13bcc49b52977783ca11952944","_id":"@bddh/starling-use-sync-ref@1.0.0","_nodeVersion":"20.18.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-NI5HYTlX5NKHTqBktiNaPqOa2J6lMVbEwJI2hfvPcq6czKxSBBqC13nx+pGKS2F4s27yFehNXfh5EdgATbM85w==","shasum":"33a24b5af33ab943d548253cd84d224187bf0b10","tarball":"https://registry.npmjs.org/@bddh/starling-use-sync-ref/-/starling-use-sync-ref-1.0.0.tgz","fileCount":6,"unpackedSize":2501,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBUifRY6ZBaQKFlSqzcge04iVsmV70UnZEbxE2/sx1EUAiBI1ZACa5b/YPSid5lZ9RkO5QpbWqcRRZcF93sjVeb8yQ=="}]},"_npmUser":{"name":"gongdong","email":"dongqinggong@gmail.com"},"directories":{},"maintainers":[{"name":"jtarch","email":"jtarch@163.com"},{"name":"jazzysnail","email":"jazzysnail@outlook.com"},{"name":"sanxy","email":"852667805@qq.com"},{"name":"coderdct","email":"2273997883@qq.com"},{"name":"gongdong","email":"dongqinggong@gmail.com"},{"name":"aliyah666","email":"liangweijing@baidu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/starling-use-sync-ref_1.0.0_1760495660744_0.32985961231082106"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-15T02:34:20.644Z","1.0.0":"2025-10-15T02:34:20.980Z","modified":"2025-10-15T02:34:21.344Z"},"maintainers":[{"name":"jtarch","email":"jtarch@163.com"},{"name":"jazzysnail","email":"jazzysnail@outlook.com"},{"name":"sanxy","email":"852667805@qq.com"},{"name":"coderdct","email":"2273997883@qq.com"},{"name":"gongdong","email":"dongqinggong@gmail.com"},{"name":"aliyah666","email":"liangweijing@baidu.com"}],"description":"useRef 的同步版本","license":"MIT","readme":"\n# useSyncRef\n`useSyncRef` 是 `useRef` 的一个版本，他的当前值总是同步使用参数值（渲染时的值），并且引用总是只读的。\n```js\nconst syncValueRef = useSyncRef(currentValue);\n```\n\n## 安装\n```bash\nnpm i @baidu/starling-use-sync-ref --save\n```\n\n## 使用\n### 将 State 转变为 Ref 被回调函数捕获来避免依赖\n```js {6,10}\nimport React, { useEffect } from 'react';\nimport {useSyncRef} from '@baidu/starling-use-sync-ref';\n\nexport const Component = ({token}) => {\n    const [state, setState] = useState();\n    const stateRef = useSyncRef(state);\n\n    useEffect(() => {\n        // 对 token 的更新做出反应，但不受 state 的影响\n        const observer = observe(token, () => console.log(stateRef.current));\n        return () => {\n            unobserve(observer);\n        }\n    }, [token]);\n\n    return <AnyComponent />\n};\n```\n","readmeFilename":"README.md","_rev":"1-a67268a33c7f90090857f120c7d7a0df"}