Skip to content

Instantly share code, notes, and snippets.

@benyou1969
Last active September 9, 2020 21:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save benyou1969/db62a08f9497d3c363033968122e1891 to your computer and use it in GitHub Desktop.
Save benyou1969/db62a08f9497d3c363033968122e1891 to your computer and use it in GitHub Desktop.
React Recoil
import React from "react";
import {
RecoilRoot,
atom,
useRecoilState,
useRecoilValue,
selector,
} from "recoil";
const numState = atom({
key: "numState", // unique
default: 0,
});
const Counter = () => {
const [number, setNumber] = useRecoilState(numState);
return <button onClick={() => setNumber(number + 1)}>+1</button>;
};
const Display = () => {
const number = useRecoilValue(numState);
return <div>{number}</div>;
};
const squareState = selector({
key: "squareState",
get: ({ get }) => {
return get(numState) ** 2;
},
});
const Square = () => {
const squareNumber = useRecoilValue(squareState);
return <div>Square: {squareNumber}</div>;
};
function App() {
return (
<RecoilRoot>
<Counter />
<Display />
<Square />
</RecoilRoot>
);
}
export default App;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment