2022. 3. 8. 14:42ใFront-End ์์ ์ค/Vue.js
๐ ๋ชฉ์ฐจ
[Vue.js] ๊ธฐ์ด ๊ฐ๋
์ ๋ฆฌ - ๊ธฐ๋ณธ ํ๊ฒฝ ๊ตฌ์ฑ
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Vue Router
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Vue LifeCycle Hook
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - data(), Data ์ฒ๋ฆฌ
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Watch, Array, for๋ฌธ(๋ฐ๋ณต๋ฌธ), if๋ฌธ
๐ฑ Git Hub ์ฃผ์ : https://github.com/junyharang-FrontEnd-coding-study/vue.js-study
๐ ์ฐธ๊ณ ์๋ฃ : https://www.youtube.com/watch?v=sqH0u8wN4Rs
๐ data() ํจ์๋?
Vue.js์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ Data๋ฅผ Handlingํ๊ณ , Data๋ฅผ Binddingํ๊ณ , Data๋ฅผ Getํ๋ ๊ฒ์ด์์.
์ด๊ฑธ ํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก data() ํจ์๋๋๋ค!
๋จผ์ data๋ผ๋ ํจ์๋ฅผ ์ ์ํ๊ณ , return๋ฌธ์ ๋ด์ฉ์ ์ ์ด ์ฃผ๋ ๊ฒ์ด์์.
์์ ๊ฐ์ด return๋ฌธ์ ๊ฐ์ฒด Key์ Value๋ฅผ ์ ๋ ฅ ํด์ฃผ๊ณ , html code ๋ถ๋ถ์ ํด๋น Data๊ฐ ์ถ๋ ฅ ๋์์ผ๋ฉด ํ๋ ๊ณณ์ {{}} ์ด๋ ๊ฒ ์ค๊ดํธ๋ฅผ ๋ ๊ฐ๋ฅผ ํฌ๊ฐ ๋ค ๊ฐ์ฒด Key ์ด๋ฆ์ ์ ์ด์ฃผ๋ฉด ๋๋ ๊ฒ์ด์์.
์์ ๊ฐ์ด ์
๋ ฅ์ ํ๊ฒ ๋๋ฉด ์น ํ์ด์ง ๋ด์ `Welcom to JunyHarang ์ฃผ๋ํ๋์ Vue.js ๊ณต๋ถ`๊ฐ ์ถ๋ ฅ์ด ๋๊ณ ,
{{title2}} ๋ผ๊ณ ํ๊ฒ ๋๋ฉด `Welcom to JunyHarang ๋๋ง์ ์น ์ฌ์ดํธ ๋ง๋ค๊ธฐ!๊ฐ ์ถ๋ ฅ์ด ๋๋ ๊ฒ์ด์์.
์์ ๋ฐฉ์์ Text ๋ฐฉ์์ผ๋ก Data๋ฅผ Binddingํ ๋ฐฉ์์ด๊ณ , ์ด์ฉ์๊ฐ ์ ๋ ฅํ๋ Data๋ฅผ ๋ฐ์์ค๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ ๊ฒ์ด์์.
<input type="text" value="abc" />
๋จผ์ ์์ ๊ฐ์ด html Code๋ฅผ ์ง๊ฒ ๋๋ฉด input Box์ `abc`๋ผ๋ ๋ฌธ์๊ฐ ๋ณด์ด๊ฒ ๋ ๊ฒ์ด์์.
Vue.js์์๋ value ๋์ ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒ์ด์์.
<input type="text" v-model="" />
์์ ๊ฐ์ด ํ๊ฒ ๋๋ฉด input Box์ `์ฃผ๋ํ๋`์ด ๋ณด์ด๊ฒ ๋๋ ๊ฒ์ด์์.
์ด ๋ฐฉ์์ One-way ๋ฐฉ์์ด ์๋๊ณ , Two-way ๋ฐฉ์์ธ๋ฐ, One-way Bindding ๋ฐฉ์์ ๋จ๋ฐฉํฅ์ผ๋ก Data๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋๋ ๊ฒ์ด๊ณ , Two-way Bindding๋ Data๋ฅผ ๋ฃ์ด์ฃผ๊ณ ๋๋๋ ๊ฒ์ด ์๋๊ณ , ์ด์ฉ์๊ฐ Data๋ฅผ ๋ฃ๊ฒ ๋๋ฉด data() ์์ inpu1์ ํด๋น Data Value๊ฐ ์ ๋ ฅ๋๋ ๋ฐฉ์์ธ ๊ฒ์ด์์.
์์ ์ฌ์ง๊ณผ ๊ฐ์ด button Tag๋ฅผ ๋ง๋ ๊ฒ์ด์์. ์ ์ฐธ! htm์์ button์ Event ์ด๋ฆ์ onclick์ด์ง๋ง, Vue.js์์๋ @click์ด๋ผ๊ณ ํด์ค์ผ ํ๋ ๊ฒ์ด์์.
Vue.js๋ ๋ชจ๋ ํจ์๋ฅผ methods: {} ์์ ์ ์ํด์ผ ํ๋ ๊ฒ์ด์์. ๊ทธ๋์ getData() ๋ผ๋ ํจ์๋ฅผ methods์๋ค๊ฐ ๋ฃ์๊ณ , ๊ฒฝ๊ณ ์ฐฝ์ ๋์ฐ๊ฒ ํ๋๋ฐ, data() ์์ ์๋ input1 (this.input1)์ ๊ฐ์ ๊ฐ์ ธ์ค๊ฒ ํ ๊ฒ์ด์์.
input Box์ ์ ๋ ฅ Data๋ฅผ ๊ฒฝ๊ณ ์ฐฝ์์ ๊ทธ๋๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ ๊ฒ์ด์์.
์ด๋ฒ์๋ setData๋ผ๋ ํจ์๋ฅผ ๋ง๋ค๊ณ , ๊ทธ๊ฒ์ ์ฒ๋ฆฌํ ์ ์๋ button์ ๋ง๋ค์ด ์ค ๊ฒ์ด์์.
์์ ๊ฐ์ด set Button์ ํด๋ฆญํ๊ฒ ๋๋ฉด input1์ ๊ฐ์ 12345๋ก ๋ฐ๊ฟ์ค ์ ์๋ ๊ฒ์ด์์.
๋ฐ๋ก ์ด ์ํ์์ `set` Button์ ํด๋ฆญํ๊ฒ ๋๋ฉด ์๋์ ๊ฐ์ด ๋ณํ๋ ๊ฒ์ ํ์ธ ํ ์ ์์ด์!