<Do it! Vue.js ์ ๋ฌธ>์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค.
๋ชฉ์ฐจ
- 1) Vue Instance
- 2) Vue Instance ์์ฑ์
- 3) Vue Instance ์ต์ ์ค์
- 4) Vue Instance ๋ผ์ดํ ์ฌ์ดํด
- 5) Vue Instance ๋ผ์ดํ ์ฌ์ดํด ์ด๊ธฐํ
1. Vue Instance
1) Vue Instance
- Vue.js๋ก ํ๋ฉด์ ๊ฐ๋ฐํ๊ธฐ ์ํด ๊ผญ ์์ฑํด์ผ ํ๋ ๊ธฐ๋ณธ ํ์ ๋จ์
new Vue({
...
});
2) Vue Instance ์์ฑ์
- new Vue()๋ก ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ Vue๋ฅผ ์์ฑ์๋ผ๊ณ ํ๋ค.
- Vue์์ฑ์๋ ๋ทฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ก๋ฉํ๊ณ ๋๋ฉด ์ ๊ทผํ ์ ์๋ค.
- Vue๋ก ๊ฐ๋ฐํ ๋ ํ์ํ ๊ธฐ๋ฅ๋ค์ ์์ฑ์์ ๋ฏธ๋ฆฌ ์ ์ํด ๋๊ณ ์ฌ์ฉ์๊ฐ ๊ทธ ๊ธฐ๋ฅ์ ์ฌ์ ์ํ์ฌ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
3) Vue Instance ์ต์ ์ค์
- Vue ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์๋์ ๊ฐ์ ์ธ์คํด์ค ์ต์ ์์ฑ์ ํฌํจํ ์ ์๋ค.
new Vue({
// instance option properties
template: "",
el: "",
methods: {}
// ...
});
์์ฑ | ์ค๋ช |
el | - element - element๊ฐ ๊ฐ๋ฅดํค๋ id์ vue ์ธ์คํด์ค์ ๋ง์ดํธ ์ํด |
data | - ํ๋ฉด์ ๋งคํ๋๋ ๋ฐ์ดํฐ๋ค์ ์ ์ธํ๊ณ ๋ด๋ ์ต์
- ํด๋นํ๋ฉด์์๋ง ์ฌ์ฉ๋ ๋ก์ปฌ ๋ณ์์ ๊ฐ์ ๋๋ - ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฒด์์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ 'state'๋ผ๊ณ ์ ์ํจ ( vuex) |
computed | - data ์ต์
์ ์์ฑ์ด ๋ณ๊ฒฝ๋ ๋ ์๋์ผ๋ก ํธ์ถ๋๋ ์ต์
, data๊ฐ ๋ณ๊ฒฝ๋๋ฉด computed๊ฐ ์บ์นํจ. - ํ๋ฒ ํธ์ถ๋๊ณ data์ต์ ์ ํด๋น ์์ฑ์ด ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉด ์บ์ฑ๋ ๋ฐ์ดํฐ ๋ฆฌํด - ๋ฐ๋์ return์ด ์์ด์ผ ํจ. - ๋ก์ง์ค์ ๋น๋๊ธฐ์ฒ๋ฆฌ ๋ก์ง์ด ์์ผ๋ฉด ์ฌ์ฉํ๋ฉด ์๋จ. |
methods | - ์ผ๋ฐ์ ์ธ ํจ์์ ๋์ผ. - computed์ ๋ค๋ฅด๊ฒ ์บ์ฑ์์ด ํธ์ถ์๋ง๋ค ๋งค๋ฒ ํธ์ถ๋๊ณ , ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํจ. - ๊ฐ์ returnํ์ง ์์๋ ๋จ. |
watch | - ์ ์๋ data์ต์
์ ์์ฑ์ด ๋ณ๊ฒฝ๋๋ฉด ํธ์ถ๋๋ ์ต์
- ๋ณ๊ฒฝ์ ํ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์ - computed ์ต์ ์ธ๋ฐ ๋น๋๊ธฐ์ฒ๋ฆฌ ํ์ํ ๋ ์ฌ์ฉ, ์บ์ฑ์ ์์ |
template | - ํ๋ฉด์ ํ์ํ HTML, CSS ๋ฑ์ ๋งํฌ์ ์์๋ฅผ ์ ์ํ๋ ์ต์ |
created | - ๋ทฐ ์ธ์คํด์ค๊ฐ ์์ฑ๋์๋ง์ ์คํํ ๋ก์ง์ ์ ์ํ ์ ์๋ ์์ฑ |
4) Vue Instance ๋ผ์ดํ ์ฌ์ดํด
created | data์์ฑ๊ณผ methods์์ฑ์ด ์ ์๋์ด ๊ทธ ๊ฐ์ ์ ๊ทผํ์ฌ ์คํํ ์ ์๋ค. ์ธ์คํด์ค๊ฐ ํ๋ฉด์์์ ๋ถ์ฐฉ๋๊ธฐ ์ ์ด๋ผ template์์ฑ์ ์ ์๋ ๋ ์์๋ก ์ ๊ทผํ ์๋ ์๋ค. |
mounted | template์์ฑ์ ์ ์ํ ํ๋ฉด ๋ ์์์ ์ ๊ทผํ ์ ์์ด ํ๋ฉด ์์๋ฅผ ์ ์ดํ๋ ๋ก์ง์ ์ํํ๊ธฐ ์ข์ ๋จ๊ณ์ด๋ค. |
updated | ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ํ๋ฉด ์์ ๋ณ๊ฒฝ๊น์ง ์๋ฃ๋ ์์ ์ด๋ฏ๋ก, ๋ฐ์ดํฐ ๋ณ๊ฒฝ ํ ํ๋ฉด ์์ ์ ์ด์ ๊ด๋ จ๋ ๋ก์ง์ ์ถ๊ฐํ๊ธฐ ์ข์ ๋จ๊ณ์ด๋ค. - ๋ฐ์ดํฐ ๊ฐ์ ๊ฐฑ์ ํ๋ ๋ก์ง : beforeUpdate์ ์ถ๊ฐ - ๋ณ๊ฒฝ ๋ฐ์ดํฐ ํ๋ฉด ๋ ์์์ ๊ด๋ จ๋ ๋ก์ง : updated์ ์ถ๊ฐ |
beforeDestroy | ๋ทฐ ์ธ์คํด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ธฐ ์ข์ ๋จ๊ณ |
5) Vue Instance ๋ผ์ดํ ์ฌ์ดํด ์ด๊ธฐํ
์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋ ์๋์ ์ด๊ธฐํ ์์ ์ ์ํํ๋ค.
- ๋ฐ์ดํฐ ๊ด์ฐฐ : beforeUpdate๋จ๊ณ์์ el์์ฑ์์ ์ง์ ํ ํ๋ฉด ์์์ ์ธ์คํด์ค๊ฐ ๋ถ์ฐฉ๋๊ณ ๋๋ฉด ์ธ์คํด์ค์ ์ ์ํ ์์ฑ๋ค์ด ์นํ๋๋ค. ์นํ๋ ๊ฐ์ ๋ทฐ์ ๋ฐ์์ฑ(Reactivity)์ ์ ๊ณตํ๊ธฐ ์ํด $watch์์ฑ์ผ๋ก ๊ฐ์ํ๋ค.
- ํ ํ๋ฆฟ ์ปดํ์ผ
- DOM ์ ๊ฐ์ฒด ์ฐ๊ฒฐ
- ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ DOM ์ ๋ฐ์ดํธ
์ด ์ด๊ธฐํ ์์ ์ธ์๋ ๊ฐ๋ฐ์๊ฐ ์๋ํ๋ ์ปค์คํ ๋ก์ง์ ์๋์ ๊ฐ์ด ์ถ๊ฐํ ์ ์๋ค.
new Vue({
data: { a: 1 },
created: function() {
// this ๋ vm ์ ๊ฐ๋ฆฌํด
console.log("a is: " + this.a);
}
});
์ created ์ด์ธ์๋ ๋ผ์ดํ์ธ์ดํด ๋จ๊ณ์ ๋ฐ๋ผ mounted, updated, destroyed ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค. ์ด ๋ผ์ดํ์ธ์ดํด ์ด๊ธฐํ ๋ฉ์๋๋ก ์ปค์คํ ๋ก์ง์ ์ํํ๊ธฐ ๋๋ฌธ์ ๋ทฐ์์๋ ๋ฐ๋ก Controller๋ฅผ ๊ฐ๊ณ ์์ง ์๋ค.
'๐ปWEB FrontEnd > ํ๋ ์์ํฌ Vue' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Vue Router (0) | 2020.07.02 |
---|---|
Vue Componets ํต์ (0) | 2020.07.02 |
Vue Componets (0) | 2020.07.02 |
Vue ์์ํ๊ธฐ (+๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ) (0) | 2020.06.30 |
Vue.js๋? (0) | 2020.06.30 |