Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 글자들여쓰기
- npm start
- node 오류
- 단어단위로떨어지기
- owlcarousel
- 정적객체
- Git clone
- vscode git clone
- legacy-peer
- package.json
- 그누보드반응형
- window 정책변경
- XEIcon
- node설치
- react npm install
- npm install
- 이미지반응형
- 동적객체
- googleicon
- minwidth
- MediaQuery
- npm install 문제
- slickslider
- fontawesome
- git lab clone
- maxwidth
- 아이콘사용법
- 플러그인
- 의존성문제
- 웹아이콘
Archives
- Today
- Total
어쩌다 알게 된 ƪ(•̃͡•̃͡ ƪ
[FE] MST란? 본문
728x90
🔖 MST = MobX State Tree
👉 React 앱에서 “전역 상태(공용 데이터)”를 관리하기 위한 도구
앱 전체에서 쓰는 데이터를
- 규칙(타입) 있게
- 안전하게
- 예측 가능하게 관리
🔖 사용 이유
useState는 컴포넌트에서만 사용하는 것이 좋고 페이지 전체(전역) 내에서 사용하려면 MST를 사용
(다른 것도 있으나 MST를 많이 쓴다고 함 => 현재 프로젝트에서도 MST 사용하고 있음)
ex) 회사 로고, 로그인 정보, 사용자 정보
- 여러 페이지에서 공통 사용
- 새로고침 전까지 유지되어야 함
- 누가 언제 바꿨는지 추적해야 하는 데이터
👉 이런 건 useState로 관리하기가 힘들기 때문에.
🔖 특징
1. 타입이 있다
=> 버그를 막아줌
logoBase64: types.string
2. 마음대로 수정 불가 (Action만 가능)
=> “누가 언제 데이터를 바꿨는지” 명확해짐
Action 안쓰고 수정했을 시 에러[mobx-state-tree] Cannot modify ... object is protected
❌ 불가 ❌
company.logoBase64 = 'xxx'
⭕ 가능 ⭕
actions(self => ({
setLogoBase64(value) {
self.logoBase64 = value;
}
}))
3. React랑 자동 연결됨 (컴포넌트가 자동으로 다시 렌더링)
=> logoBase64 바뀌는 순간 이미지 src 갱신
<img src={`data:image/png;base64,${company.logoBase64}`} />
🔖 사용 구조
const Company = types
.model({
logoBase64: types.maybe(types.string),
})
.actions(self => ({
setLogoBase64(value) {
self.logoBase64 = value;
}
}));
model → 데이터 구조 정의
types.xxx → 타입 규칙
actions → 데이터 변경 허용 구역
728x90
'개발 > 🟦 React' 카테고리의 다른 글
| [FE] type.maybe, maybeNull (0) | 2026.01.07 |
|---|---|
| React useEffect로 body class넣기 / 리팩토링 (0) | 2026.01.06 |
| ReactSortable 드래그, 솔팅 기능_리액트 라이브러리 (0) | 2025.12.31 |
| 다국어 처리 useTranslation() 훅 사용 (0) | 2025.12.03 |
| useRef로 resize width 계산 후 class 넣기 (0) | 2025.12.01 |
Comments