์ด๋ฒคํธ ์์ฑ์ ๋ํด์ ๋ค๋ค๋ณด๊ณ ์ ํ๋ค.
๋ฌผ๋ก , ๊ทธ ์ธ์๋ ์ ๋ฐ์ ์ผ๋ก Vue.js ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ์ ์ ๋ ๋ธ๋ก๊ทธ ๊ธ์ ์ฐ์ฌํ๋ ค๊ณ ํ๋ค.
๋์์์ด ๋ฐฐ์ด ๋ด์ฉ์ ์ ๋ฆฌํ ๊ฑฐ๋ผ, ์๋ชป๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ํผ๋๋ฐฑ ์ฃผ๊ธธ๋ฐ๋ผ๋ฉฐ,
์ฝ์ด์ฃผ์ ์ ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. Thanks for you guys.
์น๊ฐ๋ฐ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด์ ์ ํํ ํ๋ ์์ํฌ์ธ ๋งํผ, React๋ Angular ๋งํผ์ ์๋์ง๋ง, Vue.js ๋ ์ถฉ๋ถํ ๋งค๋ ฅ์ ์ธ ๋๊ตฌ์ธ ๊ฒ ๊ฐ์์ ์ฌ๋ฐ๋ค.
inputfiled + prop ๊ด๋ จ ๊ฐ๋
- ์ ์ ๋ฆฌ๋์ด ์์
https://whitepro.tistory.com/255
- ์๋ฐ์คํฌ๋ฆฝํธ - forEach
- ๋ฐฐ์ด์ ์ํํ๋ ๋ฐฉ๋ฒ ์ค ํ๋
- ๊ธฐ์กด ์ฝ๋
const numbers = [1,2,3,4,5]
for (i = 0; i < numbers.length; i++) {
console.log(numbers[i]);
}
- forEach ๋ฉ์๋๋ ๋ค์ ๋งค๊ฐ๋ณ์(parameter)์ ํจ๊ป ๋ฐฐ์ด์ ๊ฐ ์์์ ์ ์ฉํ๊ฒ ๋ ์ฝ๋ฐฑ ํจ์(callback function)๋ฅผ ์ ๋ฌ
- current value (๋ช ๋ช ๋ ๋งค๊ฐ๋ณ์) - ์ฒ๋ฆฌํ ํ์ฌ ์์
- Index (์ ํ์ ๋งค๊ฐ๋ณ์) - ์ฒ๋ฆฌํ ํ์ฌ ์์์ ์ธ๋ฑ์ค
- Array(์ ํ์ ๋งค๊ฐ๋ณ์) - forEach ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ฐฐ์ด
- forEach ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ์ํํ๋ ค๋ฉด ์ฝ๋ฐฑ ํจ์ ๋๋ ์ต๋ช ํจ์๊ฐ ํ์
numbers.forEach(function() {
// code
});
- ์ฝ๋ฐฑ ํจ์๋ ๊ฐ ์์์ ๋ํด ์คํ๋๋ฉฐ, ๋ฐฐ์ด์ ์์๋ฅผ ๋ํ๋ด๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๋์ ํ๋ ์ด์ ์ฌ์ฉํด์ผ ํจ
numbers.forEach(function(number){
console.log(number);
});
- ES6 ํ์ดํ ํจ์ ํํ์ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ๋จ์ํํ ์ ์์
numbers.forEach(number => console.log(number));
- ์ ํ์ ๋งค๊ฐ๋ณ์
- ์ธ๋ฑ์ค(Index)
- ์ฒซ๋ฒ์งธ ์ ํ์ ๋งค๊ฐ๋ณ์๋ ๊ฐ ์์์ ์์๋ฅผ ๋ํ๋ด๋ ์ธ๋ฑ์ค
- ์ฆ, ๋ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ฅผ ํ์ฉํ์ฌ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ์์์ ์ธ๋ฑ์ค๋ฅผ ํ์ธํ ์ ์์
numbers.forEach((number, index) => { console.log('Index: ' + index + 'Value: ' + number); });
- ๋ฐฐ์ด
- ๋ฐฐ์ด ๋งค๊ฐ๋ณ์๋ ํ์์ ๋ฐ๋ผ ๋ค์ํ๊ฒ ํ์ฉํ ์ ์๋ ์ ํ์ ๋งค๊ฐ๋ณ์๋ก, ์๋ณธ ๋ฐฐ์ด ๊ทธ ์์ฒด์
- ๋จ์ํ ํธ์ถํ๊ธฐ๋ง ํ๋ฉด ๋ฐฐ์ด์ ์์ ์๋งํผ ๋ฐฐ์ด์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์์
numbers.forEach((number, index, array) => { console.log(array); });
๐ก ๐๊ฐ์ ์ปดํฌ๋ํธ ๋ ๋ฐ ๊ฐ์ ํต์ ๋ฐฉ๋ฒ
- ๋ฐ์ดํฐ๋ฅผ ์ด๋ฒคํธ ๋ฅผ ํ์ฉํด์ ๋ณด๋ผ๋(์์→ ๋ถ๋ชจ) ์ด๋ฒคํธ
- ๋์ผ ๋ ๋ฒจ๋ผ๋ฆฌ ๋ฐ์ดํฐ ํต์ ์์ event ๋ฅผ ํตํด( root) ๋ก ๋ณด๋ด๊ณ , props ๋ฅผ ํตํด์ ๋ด๋ ค์ผ.
- ๋ฒํผ์ ๋๋ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐ๊ธฐ ์ํด์ ‘์์ฑ’ ์ ์ถ๊ฐํจ
- v-on click
- ์์ฑ ์ด๋ฆ์ passNum ์ผ๋ก ์ค์ ํด๋์ผ๋ฉด
- vue ์ธ์คํด์ค์ methods๋ก passNum ๊ด๋ จํ์ฌ ํจ์๋ฅผ ์์ฑํ์ฌ ์ด๋ฒคํธ๋ฅผ ๋ค๋ค์ค์ผํจ
- this.$emit(’pass’, 10)
- ํด๋น ์ด๋ฒคํธ ๋ฐ์์, pass๋ผ๋ ์ด๋ฆ์ผ๋ก 10 ์ด๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ค
- ์ด์ js ์ค์ ์ ๋๋ฌ๊ณ ,
- html ํํธ์์ app-content ๋ผ๊ณ ์ค์ ํด๋ ๋ถ๋ถ์์ v-on:pass ๋ก pass๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ๋ฐ๋๋ค =⇒ ์์ ์ปดํฌ๋ํธ์ methods๋ฅผ ์คํํ ์ ์๊ฒ
- pass์ ์์ ์ปดํฌ๋ํธ๋ฅผ ์ฐพ์์ > instance(vue) ์ methods ๋ฅผ ์ถ๊ฐํด์ผํจ
- ์์ ์ปดํฌ๋ํธ์์๋ ๋ฐ๋ ์ธ์๋ฅผ value๋ผ๊ณ ์ ์ํ๋๋ฐ
๐ก ๐router
- cdn ์ผ๋ก router ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
- routes ์์ฑ: page์ ๋ผ์ฐํ ์ ๋ณด๊ฐ ๋ค์ด๊ฐ
- ์ด๋ค url๋ก ๋ค์ด๊ฐ์๋, ์ด๋ค ์ ๋ณด๊ฐ ๋ค์ด๊ฐ์ง์ ๋ํด์ , ๋ฐฐ์ด๋ก ๋๋ฌ๋จ [ ]
- path์ component ๋ผ๋ ์์ฑ์ด key ์ value ๊ฐ์ผ๋ก ๋ค์ด๊ฐ
- cdn ๋ฐฉ์ - script ํ๊ทธ๋ฅผ ์ด์ฉํด์ ๋ค์ด
- component๋ ๋ฌด์กฐ๊ฑด ํ๋์ฌ์ผ ํ๋ฏ๋ก, ์์ฑ์๋ ๋จ์๋ก
- ์ธ์คํด์ค์์๋ ๋ฑ๋กํ ๋ new Vue({ .. components }) ์
๐ก axios
- view์์ ๊ถ๊ณ ํ๋ http ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- evan new : vue ์ฐฝ์์
- ํ์ค ์์ฝ : promise ๊ธฐ๋ฐ http ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ - ๋ฌธ์ํ ์ ๋์ด ์์ ( ํ์ฉ์ฑ ๋์)
- ์คํ ์์ค
- ์คํ ์์ค๋ฅผ ์ฌ์ฉํ ๋, star ์๋ฅผ ํ์ธํ ๊ฒ!! (์ค์)
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋์ค์ ์ธ์ง๋
- commit ๊ณผ contributors ๋ฅผ ํ์ธํ ๊ฒ
- promise : ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ํจํด
- ์ญ์ฌ : 1. callback
- promise
- promise + generator
- async & await
- ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์งํํด์์
this
getData ์์ ์๋ ์์ ์๋ this๋ ์๋ ~~~.then ์ ์ฝ๋ฐฑํจ์์ this์๋ ๊ฐ๋ฆฌํค๋ ๊ฒ์ด ๋ค๋ฆ
- ์๋ฅผ๋ค์ด, ์์ ์๋ this๋ root ์ธ์คํด์ค์ component๋ฅผ ๋ฐ๋ผ๋ณด๋ this
- ์๋๋ ๋น๋๊ธฐ์ฒ๋ฆฌ๋ฅผ ํ์๋, ์คํ context๊ฐ ๋ฐ๋๋ ๋ด์ฉ์ด ๋ฐ๋๋ ๋ด์ฉ๋ค์
- ์ฌ๊ธฐ์๋ vm์ด๋ผ๋ ๋ณ์๋ฅผ ์ง์ ํด๋๊ณ ์, vm.users๋ฅผ ํตํด data์ ์ ๊ทผํ์์!!!
๋ธ๋ผ์ฐ์ , ์๋ฒ
- axios.get(’ํน์ url’)
์๋ฒ์์ http ์๋ต ์์ ์ ํ๊ฒ ๋๋๋ฐ, http request ์์ฒญ, http response ์๋ต
ํฌ๋กฌ ๊ฐ๋ฐ์๋๊ตฌ์์ network
- general - request url ํ์ธ ๊ฐ๋ฅ / status code ์ฑ๊ณต ์ฌ๋ถ ํ์ธ / request mode : get ๋ฑ
- request headers - ์ค์ ๋ก ๋ธ๋ผ์ฐ์ ์ ๋ณด , ๋ฐ์์ค ์ ์๋ ํฌ๋ฉง
- response headers - ์๋ฒ๋จ์์์ ์ ๋ณด
response - ์ ๋ณด data๋ค์ด ๋ด๊ฒจ ์์ , get์ ๋ํ ์๋ต ๋ฐ์ดํฐ๋ค
๐ก ๐ํ ํ๋ฆฟ ๋ฌธ๋ฒ
- ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ / ๋๋ ํฐ๋ธ
- ๋๋ ํฐ๋ธ : v- ๋ผ๊ณ ๋ถ๋ ์์ฑ๋ค์ ๋ชจ๋ ๋๋ ํฐ๋ธ, view์์ ์ธ์ํด์ ๋ด๋ถ์ ์ผ๋ก ๋์
- app ์ด๋ผ๋ ํ๊ทธ์ ์ธ์คํด์ค๋ฅผ ๋ฌ๊ฒ ๋ค
computed
- ํน์ ๋ฐ์ดํฐ์ ๊ฐ์ ๋ฐ๋ผ ๋ฐ์ดํฐ ๊ฐ์ด ๋ณ๋๋ ๋ ์ฌ์ฉํ๋ vue ์ธ์คํด์ค์ ์์ฑ
- ๊ณ์ฐ๋ ์์ฑ
- class binding ๊ณผ ๋ฌถ์ด์ ์ค๋ช ํ ์์
view directive - data ์ uuid
- ์ด๋ค๊ฒ๋ค์ ํ ์ ์์๊น?
- id๋ฅผ data๋ก ๊ด๋ฆฌํ๊ณ ์ถ์๋
- Vue์ data ์์ฑ ์ค์ uuid ์์ฑ
- ํน์ ๋ฐ์ดํฐ์ ๊ฐ๋ค์ id์ ๋ฐ๋ผ์ ๊ด๋ฆฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ uuid
- vue ์ ์ญํ ์ reactive ํ๊ฒ ๋ฐ๋ก๋ฐ๋ก dom ์ ๋ณ๊ฒฝํด์ค
- ์ด์ ์๋ dom์ ์ผ์ผํ ์ซ์๊ฐ์, ํ๋์ฉ ๋ฐ๊ฟ์คฌ์๋๋ฐ, ์ด์ ๋ ๋ฌธ๋ฒ์ธ
- v-bind:id=”uuid” ๋ฅผ ์ด์ฉํด์ reactive ํ๊ฒ ๋ฐ์ดํฐ ๊ฐ์ ๊ด๋ฆฌํ ์ ์์
view directive - data ์ name
- text-blue๋ผ๋ name์ v-bind:class ๋ฅผ ํตํด์ ์ฐ๊ฒฐํ์
- v-show : css ์คํ์ผ์์ display:none์ผ๋ก dom์์ ๋ณด์ด์ง ์๊ฒ ํ ๋ฟ
- v-if / else ๋ฌธ : if๋ dom์ ์์ ์ ๊ฑฐํจ
- ๊ตฌํํ ๋๋ ์ง์ api๋ฅผ ์ฐพ์์ ๊ตฌํํด์ผํจ!!!!!!!
- ๊ณต์๋ฌธ์
- ํ์ํ api๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ / ๊ตฌํ ํ๋ ๋ฐฉ๋ฒ
๋ชจ๋ฅด๋ ๋ฌธ๋ฒ์ด ๋์์๋, ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๊ณ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ
- [ ] ์ธํ ๋ฐ์ค๋ฅผ ๋ง๋ค๊ณ ์ ๋ ฅ ๊ฐ์ p ํ๊ทธ์ ์ถ๋ ฅํ๊ธฐ
- [ ] ์ฌ์ดํธ : https://vuejs.org/
๋ฒํผ ๊ด๋ จ
- methods ๋ก v-on:click ์ผ๋ก ๋ณด๋ด์ค ๊ฒ์ ์ฐพ๊ธฐ
- ํค์ ๋ ฅ ๊ด๋ จ : v-on:keyup / keypress ๋ฑ๋ฑ์ ์ด๋ฒคํธํ์ ๋ค์ด ์์
- keyup์ ํค๋ฅผ ๋๋ฅด๊ณ ์ฌ๋ผ์ฌ๋ ์ด๋ฒคํธ๊ฐ ์คํ๋จ
๐ก ์ด๋ฒคํธ modifier
- . ์ ์ฐ์
v-on:keyup.enter
'๐๏ธ์ํํธ์จ์ด > ๐JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[html + css + js] ๊ณต๊ณต๊ธฐ์จ API ํ์ฉ - ajax (0) | 2022.09.20 |
---|---|
[Vue.js] ๋ฌธ๋ฒ ๊ธฐ์ด 2ํธ(props, v-bind, v-on, router, axios) (0) | 2022.09.18 |
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด ๊ฐ๋ ์ด์ ๋ฆฌ (0) | 2022.08.11 |
์ค์ฒฉ for๋ฌธ ์ด์ฉํ์ฌ ํ ์ด๋ธ ๋ง๋ค๊ธฐ (0) | 2022.08.11 |
ํ์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ์์ ์ฃผ๊ธฐ(spanํ๊ทธ, pํ๊ทธ color, style ์ง์ ) (0) | 2022.08.11 |