๐ archive29 [Vue.js ์ํ๊ด๋ฆฌ 2ํธ] Vuex ๋ฅผ ์ด์ฉํ ์ํ ๊ด๋ฆฌ ๐ Vuex ๋? Vuex ๋ vue ์ปค๋ฎค๋ํฐ์์ ๊ณต์ ์ง์ํ๋ ์ค์ ์ง์ค์ ์ํ ๊ด๋ฆฌ ์์คํ ์ ๋๋ค. ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๊ฐ ์ค์์ ์ง์ค๋์ด์๋ ๋๋ถ์ ๋ฐ์ดํฐ๋ฅผ props ์ event emit ์ผ๋ก ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค๊ณผ ํต์ ํ๋ ๋ณต์ก๋๋ฅผ ๋ฎ์ถ ์ ์์ต๋๋ค. ๐ Vuex๋ฅผ ์ ์จ์ผ ํ ๊น? ์ฑ์ด ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ ๊ณผ์ ์ฐ๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ (SPA)์ ๋ค์๊ณผ ๊ฐ์ด view, state, actions ์ ํ๋ฆ์ผ๋ก ์ฌ์ฉ์์์ ์ํธ์์ฉ์ด ์ผ์ด๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํน์ action ์ ์ทจํ๋ฉด ๊ทธ์ ๋ฐ๋ผ state ๊ฐ ๋ฐ๋๊ณ ์ด๊ฒ์ด view ์ ๋ฐ์๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ๋ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๋ค์ view ๋ฅผ ๊ตฌ์ฑํ๊ณ ์์ผ๋ฉฐ ๋๋ฌธ์ ๊ฐ๊ฐ์ state ๋ ์ปดํฌ๋ํธ์ ์ข ์๋์ด ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋๊ท๋ชจ ์ฑ์์๋? ์์ ํฌ๊ธฐ์ ์ฑ์ด๋ผ๋ฉด.. 2022. 3. 7. [Vue.js ์ํ๊ด๋ฆฌ 1ํธ] Vue.Observable ์ ํตํ ์ํ๊ด๋ฆฌ ๐ Vue.Observable? Vue 2.6 ๋ฒ์ ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ํ์ผ๋ก ๋ง๋ค์ด ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๊ฒผ์ต๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ ์ด๋ฅผ ํ์ฉํ ๊ฐ๋จํ ์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ๋ํด์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๐ Store ํจํด ์ฌ์ฉํด๋ณด๊ธฐ ๊ฐ๋จํ counter ์ฑ์ ํตํด์ Vue.observable ์ ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋จผ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ๋ค์๊ณผ ๊ฐ์ด count ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํฉ๋๋ค. ๋ฒํผ์ ํด๋ฆญํ๋ฉด count ๊ฐ 1์ฉ ์ฆ๊ฐํ๋ ์์ ์ ๋๋ค. {{ count }} ํด๋ฆญ ํ์ฌ ์ปดํฌ๋ํธ ์ํ ๊ฐ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์๋ count ๊ฐ์ ์ ์ญ์์ ๊ด๋ฆฌํ๋๋ก ๋ณ๊ฒฝํ๊ฒ ์ต๋๋ค. ๋จผ์ store ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๊ณ index.js ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. import Vue f.. 2022. 3. 7. [Vue.js] $el ์ต์ ์ ๋ฌด์์ผ๊น? ๐ el ์ต์ ์ด๋? Vue ๋ผ์ดํ ์ฌ์ดํด ๊ณต๋ถํ๋ค๊ฐ ์์ํ el ์ต์ ์ด ํ์ด๋์์ ํ๋ฒ ์ฐพ์๋ดค์ต๋๋ค. el ์ต์ ์ Vue ์ปดํฌ๋ํธ์์ ์ ๊ณตํ๋ ์ต์ ์ผ๋ก ๋ง์ดํ ํฌ์ธํธ๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ๋จ el ์ต์ ์ new ๋ฅผ ํตํ Vue ์ธ์คํด์ค ์์ฑ์์๋ง ์ ํจํฉ๋๋ค. ๐ el ์ต์ ์ฌ์ฉ ์์ {{message}} el ์๋ querySelector ์ ๊ฐ์ด ์ง์ ํ ์ ์์ผ๋ฉฐ ์ง์ ๋ ์์์ Vue ์ปดํฌ๋ํธ๊ฐ ๋์ฒด๋ฉ๋๋ค. ๋ง์ฝ template ์ต์ ์ด๋ render ํจ์๊ฐ ์๋ค๋ฉด ์ง์ ๋ DOM ์์ ๋ด๋ถ ๋ด์ฉ์ด ๋ ๋๋ง ๋ฉ๋๋ค. ์ ์์์ ๊ฒฝ์ฐ message ๋ด์ฉ์ด p ํ๊ทธ์ ๋๋ฌ์ธ์ฌ ๋ ๋๋ง ๋๊ฒ ๋ค์. ๐ $mount ๋ฉ์๋๋? el ์ต์ ์ ์ฌ์ฉํ๋ ๋์ $mount ์ต์ ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๋ง์ฝ ํน์ ํ ๋ชฉ์ ์ผ.. 2022. 3. 1. [Vue.js] ์์์ ํจ๊ป ๋ณด๋ ๋์ ์ปดํฌ๋ํธ ๐ Vue ๋์ ์ปดํฌ๋ํธ ์ด๋ฒ์ ์ฌ๋ด์์ ๊ฐ๋ฐํ๋ ์ฑ์ ํ๋ฉด ํธ์ง ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ฉด์ ๋์ ์ปดํฌ๋ํธ ์ ๋ํด์ ์ฐพ์๋ณด๊ฒ ๋์์ต๋๋ค. ํธ์ง ๊ธฐ๋ฅ์ ํตํด ์ํ ์นด๋์ ์์๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋๋ฐ, ํ๋ฉด ๋ฆฌํ๋ ์๊ฐ ๋ฐ์ํ์ง ์๊ณ DOM ์ ์์๋ฅผ ์กฐ์ํด์ผํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ํ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก ๋์ ์ปดํฌ๋ํธ ์์ต๋๋ค. ๐ ๋์ ์ปดํฌ๋ํธ๋? ๋์ ์ปดํฌ๋ํธ ๋ ๋ง ๊ทธ๋๋ก ๋ ๋๋ง๋๋ ์ปดํฌ๋ํธ๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ฅผ ๋ง์ดํธ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ํด๋ฆญ ๋์ ์์๋ฅผ ์ํ ๊ฐ๋จํ ์์ ์ ๋๋ค. component ์ is ์์ฑ์ ๋ ๋๋งํ๊ณ ์ ํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ง์ ํด์ ๋์ ์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ํ ๋นํ ์ ์์ต๋๋ค. 2022. 3. 1. [Vue.js] computed ์์ฑ ์ฌ์ฉ ์ ์ฃผ์ํ ์ ๋ค Vue computed ์์ฑ ์ฌ์ฉ ์ ์ฃผ์ํ ์ ๋ค ๐ก ๋ณธ ํฌ์คํธ๋ Vue.js ์ฝ์ด ํ ์ผ์์ธ Thorsten Lünborg ์ด ๊ธฐ๊ณ ํ ๊ธ์ ๊ทผ๊ฑฐํฉ๋๋ค. ๐ computed ์์ฑ์ด๋? export default { name: "HelloWorld", data() { return { todos: [ { title: "wash dishes", done: true }, { title: "remove trash", done: false }, ], }; }, computed: { needTodos() { return this.todos.filter((todo) => !todo.done); }, }, }; Vue ์์ computed ์์ฑ์ data ์ ๋ณํ๋ฅผ ๊ฐ์งํ์ฌ ๋์ ์ผ๋ก ๊ณ์ฐ๋ ๊ฐ์ ์ด์ฉํ ๋ ์ฌ์ฉํฉ๋๋ค. .. 2022. 2. 23. [Vue.js] Error Boundary ๋ก ์๋ฌ ํธ๋ค๋งํ๊ธฐ Vue ์์ Error Boundary๋ก ์๋ฌ ์ฒ๋ฆฌํ๊ธฐ ๐ Error Boundary ๋? ์ด์ ์ ์ ๊น React ๊ณต๋ถํ ๋ ๊ณต์ ๋ฌธ์์ Error Boundary ๋ผ๋ ๊ธฐ๋ฒ์ด ์๊ฐ๋์ด ์์์ต๋๋ค. Error Boundary ๋ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ๋ค๋ฃจ๋ ํ๋์ ๋ฐฉ๋ฒ์ผ๋ก ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ์ปดํฌ๋ํธ(Error Boundary)๋ฅผ ๋ง๋ค์ด ์ฑ์ ์คํ์ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. Vue ์๋ ํด๋น ๊ธฐ๋ฒ์ด ์์๊น ๊ถ๊ธํด์ ์ฐพ์๋ดค์๋๋ฐ ์ด๋ฅผ ์๊ฐํ๋ ๊ธ์ด ์์ด์ ์ ๋ฆฌํด๋ดค์ต๋๋ค. ๐ Vue ์์ Error Boundary ์ฌ์ฉํ๊ธฐ Vue 2.5 ๋ฒ์ ์์๋ errorCaputred ๋ผ๋ ํ ์ ์ง์ํ๊ธฐ ์์ํ์ต๋๋ค. ํด๋น ํ ์์๋ ์์ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ๊ฐ์งํด ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. Error B.. 2022. 2. 20. ์ด์ 1 2 3 4 5 ๋ค์