{"id":23082,"date":"2023-05-15T06:33:41","date_gmt":"2023-05-15T03:03:41","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/"},"modified":"2023-05-15T06:33:41","modified_gmt":"2023-05-15T03:03:41","slug":"atomic-state-management-in-react-1nbc","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/","title":{"rendered":"\u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0648\u0644\u062a \u0627\u062a\u0645\u06cc \u0686\u06cc\u0633\u062a &#8211; \u062e\u0648\u062f\u062a\u0627\u0646 \u0628\u0633\u0627\u0632\u06cc\u062f"},"content":{"rendered":"<div data-article-id=\"1467785\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#%D8%A7%DB%8C%D8%A7%D9%84%D8%AA_%DA%A9%D8%AC%D8%A7_%D8%B2%D9%86%D8%AF%DA%AF%DB%8C_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\" >\u0627\u06cc\u0627\u0644\u062a \u06a9\u062c\u0627 \u0632\u0646\u062f\u06af\u06cc \u0645\u06cc \u06a9\u0646\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#%D8%A7%D8%AA%D9%85_%D9%87%D8%A7\" >\u0627\u062a\u0645 \u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#%D8%AE%D9%88%D8%AF%D8%AA%D8%A7%D9%86_%D8%B1%D8%A7_%D8%A7%D8%B2_%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7_%D8%A8%D8%B3%D8%A7%D8%B2%DB%8C%D8%AF\" >\u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f.<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#Atom_Creators_%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%DA%A9%D8%A7%D8%B1%D8%AE%D8%A7%D9%86%D9%87\" >Atom Creators \/ \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0631\u062e\u0627\u0646\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%82%D9%84%D8%A7%D8%A8_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D8%A7%D8%AA%D9%85\" >\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0642\u0644\u0627\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062a\u0645<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#useAtomValue_%D9%88_useAtomSetter_Implementation\" >useAtomValue \u0648 useAtomSetter Implementation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%D8%AA%D9%85_%D9%85%D8%B4%D8%AA%D9%82_%D8%B4%D8%AF%D9%87\" >\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u062a\u0645 \u0645\u0634\u062a\u0642 \u0634\u062f\u0647<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#%D9%85%D8%AB%D8%A7%D9%84_%D8%A7%D8%AA%D9%85_%D9%85%D8%B4%D8%AA%D9%82_%D8%B4%D8%AF%D9%87\" >\u0645\u062b\u0627\u0644 \u0627\u062a\u0645 \u0645\u0634\u062a\u0642 \u0634\u062f\u0647<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/atomic-state-management-in-react-1nbc\/#%D8%AC%D8%A7%DB%8C%D8%B2%D9%87_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86_atomWithLocalStorage\" >\u062c\u0627\u06cc\u0632\u0647: \u067e\u0644\u0627\u06af\u06cc\u0646 atomWithLocalStorage<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%A7%D9%84%D8%AA_%DA%A9%D8%AC%D8%A7_%D8%B2%D9%86%D8%AF%DA%AF%DB%8C_%D9%85%DB%8C_%DA%A9%D9%86%D8%AF%D8%9F\"><\/span>\n<p>  \u0627\u06cc\u0627\u0644\u062a \u06a9\u062c\u0627 \u0632\u0646\u062f\u06af\u06cc \u0645\u06cc \u06a9\u0646\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u067e\u0627\u0633\u062e \u0633\u0631\u0631\u0627\u0633\u062a \u0646\u06cc\u0633\u062a.  \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 React \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u062f\u0648 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u0628\u0646\u062f\u06cc \u0648\u0636\u0639\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f: \u062d\u0627\u0644\u062a \u062c\u0632\u0621 (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 useState) \u0648 \u0630\u062e\u06cc\u0631\u0647 \u062c\u0647\u0627\u0646\u06cc (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Redux).  \u0648\u0636\u0639\u06cc\u062a \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0646\u0632\u062f\u06cc\u06a9 \u0628\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0627\u0634\u062f \u06cc\u0627 \u062f\u0631 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 Redux \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u062f\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0646\u0632\u062f\u06cc\u06a9 \u0628\u0647 \u0645\u0646\u0628\u0639 \u0627\u0633\u062a \u0648 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u0644 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f.<\/p>\n<p>\u0622\u06cc\u0627 \u062a\u0627 \u0628\u0647 \u062d\u0627\u0644 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0645\u0648\u0642\u0639\u06cc\u062a\u06cc \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0647 \u0627\u06cc\u062f \u06a9\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0642\u0644\u0627\u0628 useState \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0628\u0647 \u0634\u06cc\u0621 \u062d\u0627\u0644\u062a \u062e\u0648\u062f \u0646\u06cc\u0632 \u0627\u0631\u062c\u0627\u0639 \u062f\u0647\u06cc\u062f\u061f  \u0627\u06cc\u0646\u062c\u0627\u0633\u062a \u06a9\u0647 \u0645\u062f\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0627\u062a\u0645\u06cc \u0648\u0627\u0631\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AA%D9%85_%D9%87%D8%A7\"><\/span>\n<p>  \u0627\u062a\u0645 \u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0627\u062a\u0645\u06cc \u0634\u0627\u0645\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062a\u0645 \u0647\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0645\u0631\u06a9\u0632\u06cc \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0648\u0644\u062a\u06cc \u0627\u0633\u062a.  \u0645\u06cc \u062a\u0648\u0627\u0646 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0627\u0631\u062a\u0642\u0627 \u06cc\u0627\u0641\u062a\u0647 \u0627\u0632 \u0642\u0644\u0627\u0628 useState \u062f\u06cc\u062f \u06a9\u0647 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u062d\u0627\u0644\u062a \u0628\u06cc\u0646 \u0627\u062c\u0632\u0627 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0645\u0632\u0627\u06cc\u0627\u06cc \u0647\u0631 \u062f\u0648 \u062d\u0627\u0644\u062a \u062c\u0632\u0621 \u0648 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u0641\u0631\u0648\u0634\u06af\u0627\u0647 \u062c\u0647\u0627\u0646\u06cc \u0631\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u062a\u0645 \u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u062f\u0641\u0645\u0646\u062f \u0637\u0631\u0627\u062d\u06cc \u0634\u062f\u0647 \u0627\u0646\u062f \u062a\u0627 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u0645\u0646\u0641\u0631\u062f \u0631\u0627 \u0646\u06af\u0647 \u062f\u0627\u0631\u0646\u062f.<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0645\u062b\u0627\u0644 \u0632\u06cc\u0631 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0646\u0648\u0634\u062a\u0627\u0631 \u06a9\u0648\u062a\u0627\u0647 \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0630\u0627\u0631\u06cc \u0628\u06cc\u0646 \u0627\u062c\u0632\u0627\u0621 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight jsx\"><code><span class=\"c1\">\/\/ Example from jotai.org<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">animeAtom<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">(<\/span><span class=\"nx\">animeAtom<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">Header<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">anime<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setAnime<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useAtom<\/span><span class=\"p\">(<\/span><span class=\"nx\">animeAtom<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">...<\/span>\n<span class=\"p\">}<\/span>\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0645\u062b\u0627\u0644 \u0628\u0627\u0644\u0627 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f\u060c \u0645\u062f\u0644 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0627\u062a\u0645\u06cc \u06a9\u062f \u062f\u06cc\u06af \u0628\u062e\u0627\u0631 \u0631\u0627 \u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 \u0631\u0648\u06cc\u06a9\u0631\u062f\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0644\u06af\u0648\u06cc \u0634\u0627\u0631 \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0628\u0633\u06cc\u0627\u0631 \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0642\u0644\u0627\u0628 useState React \u0627\u0633\u062a.<\/p>\n<blockquote>\n<p>TL;DR \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0627\u062a\u0645\u06cc \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631\u06cc \u0628\u0647\u062a\u0631 \u062f\u0631 \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062d\u0627\u0644\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AE%D9%88%D8%AF%D8%AA%D8%A7%D9%86_%D8%B1%D8%A7_%D8%A7%D8%B2_%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7_%D8%A8%D8%B3%D8%A7%D8%B2%DB%8C%D8%AF\"><\/span>\n<p>  \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f.<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u062f\u0627\u0645\u0647\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u062f\u0631 github \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0627\u0633\u062a\u060c \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062f\u0631 \u062a\u0648\u0644\u06cc\u062f\u060c Jotai \u06cc\u0627 Recoil \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Atom_Creators_%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%DA%A9%D8%A7%D8%B1%D8%AE%D8%A7%D9%86%D9%87\"><\/span>\n<p>  Atom Creators \/ \u0627\u062c\u0631\u0627\u06cc \u06a9\u0627\u0631\u062e\u0627\u0646\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"kd\">let<\/span> <span class=\"nx\">atomId<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">function<\/span> <span class=\"nx\">atomFactory<\/span><span class=\"p\">(<\/span><span class=\"nx\">payload<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">atom<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{};<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">subscribers<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nb\">Map<\/span><span class=\"p\">();<\/span>\n\n  <span class=\"kd\">let<\/span> <span class=\"nx\">subscriberIds<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">key<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">atomId<\/span><span class=\"o\">++<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"c1\">\/\/ This function returns the current value<\/span>\n  <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"kd\">get<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"c1\">\/\/ sets value and notify to subscribers<\/span>\n  <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"kd\">set<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">value<\/span><span class=\"p\">;<\/span>\n    <span class=\"nx\">notify<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"c1\">\/\/ notifier function to notify value<\/span>\n  <span class=\"kd\">function<\/span> <span class=\"nx\">notify<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">subscribers<\/span><span class=\"p\">.<\/span><span class=\"nx\">forEach<\/span><span class=\"p\">((<\/span><span class=\"nx\">subscriber<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">subscriber<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"c1\">\/\/ subscribe to changes; returns unsubscribe fn<\/span>\n  <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">subscribe<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">(<\/span><span class=\"nx\">fn<\/span><span class=\"p\">,<\/span> <span class=\"nx\">initialId<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">id<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">initialId<\/span> <span class=\"o\">??<\/span> <span class=\"p\">(<\/span><span class=\"nx\">subscriberIds<\/span> <span class=\"o\">+=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"nx\">subscribers<\/span><span class=\"p\">.<\/span><span class=\"kd\">set<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">,<\/span> <span class=\"nx\">fn<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">void<\/span> <span class=\"nx\">subscribers<\/span><span class=\"p\">.<\/span><span class=\"k\">delete<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"c1\">\/\/ actual atom value<\/span>\n  <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">payload<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">atomFactory<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">atom<\/span> <span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u06cc\u06a9 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0627\u0633\u0627\u0633\u06cc \u0627\u0632 \u06a9\u0627\u0631\u062e\u0627\u0646\u0647 \u0627\u062a\u0645 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0634\u06cc \u0627\u062a\u0645 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"c1\">\/\/ atom returned by factory fn<\/span>\n\n<span class=\"p\">{<\/span>\n    <span class=\"nl\">get<\/span><span class=\"p\">:<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">void<\/span>\n    <span class=\"kd\">set<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">:<\/span> <span class=\"kr\">any<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">void<\/span>\n    <span class=\"nx\">subscribe<\/span><span class=\"p\">:<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">void<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D9%82%D9%84%D8%A7%D8%A8_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D8%A7%D8%AA%D9%85\"><\/span>\n<p>  \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0642\u0644\u0627\u0628 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062a\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nx\">useAtom<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setState<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"kd\">get<\/span><span class=\"p\">());<\/span>\n\n  <span class=\"nx\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ subscribe on mount and sets local state with new value (used for sync atom to reacts state)<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">unSubscribe<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">subscribe<\/span><span class=\"p\">(<\/span><span class=\"nx\">setState<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"c1\">\/\/ unsubscribe on unmount<\/span>\n    <span class=\"k\">return<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">unSubscribe<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">atom<\/span><span class=\"p\">]);<\/span>\n\n  <span class=\"c1\">\/\/ just setter function.<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">setAtomValue<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useCallback<\/span><span class=\"p\">((<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"kd\">set<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">),<\/span> <span class=\"p\">[<\/span><span class=\"nx\">atom<\/span><span class=\"p\">]);<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"p\">[<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setAtomValue<\/span><span class=\"p\">];<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0648\u0647\u0648\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645\u0645.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"useAtomValue_%D9%88_useAtomSetter_Implementation\"><\/span>\n<p>  useAtomValue \u0648 useAtomSetter Implementation<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u0642\u0644\u0627\u0628 \u0647\u0627\u06cc useAtom \u0631\u0627 \u0628\u0647 \u062f\u0648 \u0642\u0633\u0645\u062a \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ useAtomValue<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nx\">useAtomValue<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">state<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setState<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"kd\">get<\/span><span class=\"p\">());<\/span>\n\n  <span class=\"nx\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">unSubscribe<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">subscribe<\/span><span class=\"p\">(<\/span><span class=\"nx\">setState<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">return<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">unSubscribe<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[<\/span><span class=\"nx\">atom<\/span><span class=\"p\">]);<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">state<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ useAtomSetter<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nx\">useAtomSetter<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"nx\">useCallback<\/span><span class=\"p\">((<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"kd\">set<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">),<\/span> <span class=\"p\">[<\/span><span class=\"nx\">atom<\/span><span class=\"p\">]);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u0627\u062a\u0645 \u0647\u0648\u06a9<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nx\">useAtom<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"p\">[<\/span><span class=\"nx\">useAtomValue<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">),<\/span> <span class=\"nx\">useAtomSetter<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">)];<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0645\u0627\u0646 \u062c\u0648\u062a\u0627\u06cc \u0627\u0633\u062a<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight jsx\"><code><span class=\"c1\">\/\/ Example from jotai.org<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">animeAtom<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">bleach<\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">Header<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">anime<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setAnime<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useAtom<\/span><span class=\"p\">(<\/span><span class=\"nx\">animeAtom<\/span><span class=\"p\">)<\/span>\n  <span class=\"p\">...<\/span>\n<span class=\"p\">}<\/span>\n\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%D8%A7%D8%AF%D9%87_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%A7%D8%AA%D9%85_%D9%85%D8%B4%D8%AA%D9%82_%D8%B4%D8%AF%D9%87\"><\/span>\n<p>  \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0627\u062a\u0645 \u0645\u0634\u062a\u0642 \u0634\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ refactored atom factory fn<\/span>\n<span class=\"kd\">function<\/span> <span class=\"nx\">atomFactory<\/span><span class=\"p\">(<\/span><span class=\"nx\">payload<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">atom<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{};<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">subscribers<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nb\">Map<\/span><span class=\"p\">();<\/span>\n\n  <span class=\"kd\">let<\/span> <span class=\"nx\">subscriberIds<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">key<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">atomId<\/span><span class=\"o\">++<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"c1\">\/\/ getAtom function used to subscribe to another atom (for derived state)<\/span>\n  <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">getAtom<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">(<\/span><span class=\"nx\">prevAtom<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">prevAtom<\/span><span class=\"p\">.<\/span><span class=\"nx\">subscribe<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">payload<\/span> <span class=\"k\">instanceof<\/span> <span class=\"nb\">Function<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">payload<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">getAtom<\/span><span class=\"p\">);<\/span>\n        <span class=\"nx\">notify<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">},<\/span> <span class=\"s2\">`atom_<\/span><span class=\"p\">${<\/span><span class=\"nx\">key<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"nx\">prevAtom<\/span><span class=\"p\">.<\/span><span class=\"kd\">get<\/span><span class=\"p\">();<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"kd\">get<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"kd\">set<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">value<\/span><span class=\"p\">;<\/span>\n    <span class=\"nx\">notify<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"kd\">function<\/span> <span class=\"nx\">notify<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">subscribers<\/span><span class=\"p\">.<\/span><span class=\"nx\">forEach<\/span><span class=\"p\">((<\/span><span class=\"nx\">subscriber<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">subscriber<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">subscribe<\/span> <span class=\"o\">=<\/span> <span class=\"kd\">function<\/span> <span class=\"p\">(<\/span><span class=\"nx\">fn<\/span><span class=\"p\">,<\/span> <span class=\"nx\">initialId<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">id<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">initialId<\/span> <span class=\"o\">??<\/span> <span class=\"p\">(<\/span><span class=\"nx\">subscriberIds<\/span> <span class=\"o\">+=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"nx\">subscribers<\/span><span class=\"p\">.<\/span><span class=\"kd\">set<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">,<\/span> <span class=\"nx\">fn<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"k\">void<\/span> <span class=\"nx\">subscribers<\/span><span class=\"p\">.<\/span><span class=\"k\">delete<\/span><span class=\"p\">(<\/span><span class=\"nx\">id<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"c1\">\/\/ check if the payload is a function (derived atom) or normal atom<\/span>\n  <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">payload<\/span> <span class=\"k\">instanceof<\/span> <span class=\"nb\">Function<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">payload<\/span><span class=\"p\">(<\/span><span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">getAtom<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">atom<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">payload<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">atomFactory<\/span> <span class=\"k\">as<\/span> <span class=\"nx\">atom<\/span> <span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>useAtom \u0628\u0647 \u0647\u0645\u0627\u0646 \u0635\u0648\u0631\u062a \u0628\u0627\u0642\u06cc \u062e\u0648\u0627\u0647\u062f \u0645\u0627\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_%D8%A7%D8%AA%D9%85_%D9%85%D8%B4%D8%AA%D9%82_%D8%B4%D8%AF%D9%87\"><\/span>\n<p>  \u0645\u062b\u0627\u0644 \u0627\u062a\u0645 \u0645\u0634\u062a\u0642 \u0634\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useAtom<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useAtomValue<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">.\/lib<\/span><span class=\"dl\">'<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">priceAtom<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">createAtom<\/span><span class=\"p\">(<\/span><span class=\"mi\">15<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">discountAtom<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">createAtom<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">discountedPriceAtom<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">createAtom<\/span><span class=\"p\">((<\/span><span class=\"kd\">get<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"p\">(<\/span><span class=\"kd\">get<\/span><span class=\"p\">(<\/span><span class=\"nx\">priceAtom<\/span><span class=\"p\">)<\/span> <span class=\"o\">\/<\/span> <span class=\"mi\">100<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span> <span class=\"kd\">get<\/span><span class=\"p\">(<\/span><span class=\"nx\">discountAtom<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">Component<\/span> <span class=\"o\">=<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">price<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setPrice<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useAtom<\/span><span class=\"p\">(<\/span><span class=\"nx\">priceAtom<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">discountedPrice<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useAtomValue<\/span><span class=\"p\">(<\/span><span class=\"nx\">discountedPriceAtom<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">...<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AC%D8%A7%DB%8C%D8%B2%D9%87_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86_atomWithLocalStorage\"><\/span>\n<p>  \u062c\u0627\u06cc\u0632\u0647: \u067e\u0644\u0627\u06af\u06cc\u0646 atomWithLocalStorage<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">atom<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/lib<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"kd\">function<\/span> <span class=\"nx\">atomWithLocalStorage<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span> <span class=\"nx\">payload<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"c1\">\/\/Create new atom<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">newAtom<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">atom<\/span><span class=\"p\">(<\/span><span class=\"nx\">payload<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"c1\">\/\/ check value exists in localstorage or not<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">prevVal<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nx\">parse<\/span><span class=\"p\">(<\/span><span class=\"nx\">localStorage<\/span><span class=\"p\">.<\/span><span class=\"nx\">getItem<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">)<\/span> <span class=\"o\">||<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">null<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">prevVal<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c1\">\/\/ if the value exists in localstorage sets to atom<\/span>\n    <span class=\"nx\">newAtom<\/span><span class=\"p\">.<\/span><span class=\"kd\">set<\/span><span class=\"p\">(<\/span><span class=\"nx\">prevVal<\/span><span class=\"p\">.<\/span><span class=\"nx\">data<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"c1\">\/\/ subscribe to changes and set value in localstorage<\/span>\n  <span class=\"nx\">newAtom<\/span><span class=\"p\">.<\/span><span class=\"nx\">subscribe<\/span><span class=\"p\">((<\/span><span class=\"nx\">val<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span>\n    <span class=\"nx\">localStorage<\/span><span class=\"p\">.<\/span><span class=\"nx\">setItem<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nx\">stringify<\/span><span class=\"p\">({<\/span> <span class=\"na\">data<\/span><span class=\"p\">:<\/span> <span class=\"nx\">val<\/span> <span class=\"p\">}))<\/span>\n  <span class=\"p\">);<\/span>\n\n  <span class=\"k\">return<\/span> <span class=\"nx\">newAtom<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06cc\u0627\u0644\u062a \u06a9\u062c\u0627 \u0632\u0646\u062f\u06af\u06cc \u0645\u06cc \u06a9\u0646\u062f\u061f \u067e\u0627\u0633\u062e \u0633\u0631\u0631\u0627\u0633\u062a \u0646\u06cc\u0633\u062a. \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 React \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u062f\u0648 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u0628\u0646\u062f\u06cc \u0648\u0636\u0639\u06cc\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f: \u062d\u0627\u0644\u062a \u062c\u0632\u0621 (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 useState) \u0648 \u0630\u062e\u06cc\u0631\u0647 \u062c\u0647\u0627\u0646\u06cc (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Redux). \u0648\u0636\u0639\u06cc\u062a \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0646\u0632\u062f\u06cc\u06a9 \u0628\u0647 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0645\u0631\u062a\u0628\u0637 \u0628\u0627\u0634\u062f \u06cc\u0627 \u062f\u0631 \u0641\u0631\u0648\u0634\u06af\u0627\u0647 Redux \u0630\u062e\u06cc\u0631\u0647 \u0634\u0648\u062f\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":23083,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-23082","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/23082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=23082"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/23082\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/23083"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=23082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=23082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=23082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}