diff --git a/react-advanced-tag1/package-lock.json b/react-advanced-tag1/package-lock.json
index 87017f4..ec30ece 100644
--- a/react-advanced-tag1/package-lock.json
+++ b/react-advanced-tag1/package-lock.json
@@ -11,7 +11,8 @@
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-router-dom": "^7.5.0",
- "react-scan": "^0.3.3"
+ "react-scan": "^0.3.3",
+ "zustand": "^5.0.3"
},
"devDependencies": {
"@eslint/js": "^9.21.0",
@@ -6048,6 +6049,35 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/zustand": {
+ "version": "5.0.3",
+ "resolved": "https://bin.sbb.ch/artifactory/api/npm/npm/zustand/-/zustand-5.0.3.tgz",
+ "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18.0.0",
+ "immer": ">=9.0.6",
+ "react": ">=18.0.0",
+ "use-sync-external-store": ">=1.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "use-sync-external-store": {
+ "optional": true
+ }
+ }
}
}
}
diff --git a/react-advanced-tag1/package.json b/react-advanced-tag1/package.json
index deaeac4..9bf392e 100644
--- a/react-advanced-tag1/package.json
+++ b/react-advanced-tag1/package.json
@@ -19,7 +19,8 @@
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-router-dom": "^7.5.0",
- "react-scan": "^0.3.3"
+ "react-scan": "^0.3.3",
+ "zustand": "^5.0.3"
},
"devDependencies": {
"@eslint/js": "^9.21.0",
@@ -39,4 +40,4 @@
"vite": "^6.2.0",
"vitest": "^3.1.1"
}
-}
\ No newline at end of file
+}
diff --git a/react-advanced-tag1/src/App.tsx b/react-advanced-tag1/src/App.tsx
index 8742d80..34f3776 100644
--- a/react-advanced-tag1/src/App.tsx
+++ b/react-advanced-tag1/src/App.tsx
@@ -8,6 +8,7 @@ import EffectExercisesPage from './routes/EffectExercisesPage'
import FormsPage from './routes/FormsPage'
import MemoCallbackPage from './routes/MemoCallbackPage'
import ComponentWrapperPage from './routes/ComponentWrapperPage'
+import ZustandCounterPage from './routes/ZustandCounterPage'
function App() {
@@ -19,7 +20,7 @@ function App() {
Count: {count}
; +} \ No newline at end of file