Vuejs ์†Œ๊ฐœ๐ŸŽ๐ŸŽ๐ŸŽ

5922 ๋‹จ์–ด vuewebdevjavascriptbeginners

Vuejs๋ฅผ ์‚ฌ์šฉํ–ˆ๊ฑฐ๋‚˜ ์—ฌ์ „ํžˆ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๊นŒ?



์˜ค๋Š˜์€ Vuejs์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•๊ณผ ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์™”์Šต๋‹ˆ๋‹ค.
๊ธด ๋‹จ๋ฝ์„ ์ฝ๋Š” ๋Œ€์‹  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ•™์Šต์„ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด codepen์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋จผ์ € id ์•ฑ์œผ๋กœ div ํƒœ๊ทธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

<div id="app"></div>


์ด์ œ Vuejs ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
Vue๋Š” ๊ฐ์ฒด๋ฅผ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด Vue ์ธ์Šคํ„ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

let app = new Vue({
  el:'#app'
})



์œ„์˜ ์ฝ”๋“œ๊ฐ€ ํ•˜๋Š” ์ผ์€ vue์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” div ์š”์†Œ ๋‚ด๋ถ€์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์†์„ฑ์€ Vue๊ฐ€ ๋Œ€์ƒ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” HTML ์ฝ”๋“œ์˜ ์š”์†Œ๋ฅผ ์˜๋ฏธํ•˜๋Š” el์ž…๋‹ˆ๋‹ค.

Data Property: Vue ๋‚ด๋ถ€์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Methods ์†์„ฑ: ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

์ด์ œ ๋ฐ์ดํ„ฐ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

var app = new Vue({
  el:'#app',
  data:{
    name:'Welcome to Vuejs',
    show:true,
    persons:['Gowtham','Aaron','Tonny']
  },
  methods:{
     changeme(){
       this.show = !this.show
    }
  }
})


data ๋ฐ methods ์†์„ฑ์€ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์†์„ฑ์—์„œ ์ผ๋ถ€ ์ •์  ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฉ”์„œ๋“œ ์†์„ฑ์—์„œ changeme ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ div ์š”์†Œ ๋‚ด์—์„œ ์ด๋Ÿฌํ•œ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

<div id="app">
  <h1 v-if="show">{{name}}</h1>

  <ul v-for="person in persons" v-if="show">
    <li>{{person}}</li>
  </ul>
  <button @click="changeme">
    {{show ? 'Hide' : 'Show'}}
  </button>
</div>



v-if ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ h1 ์š”์†Œ๋ฅผ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ Vue ์ธ์Šคํ„ด์Šค์˜ ๋ฐ์ดํ„ฐ ์†์„ฑ ๋‚ด๋ถ€์— ์ •์˜๋œ show ์†์„ฑ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

v-if๊ฐ€ ํ•˜๋Š” ์ผ์€ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ๋งŒ dom์— ํ‘œ์‹œ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.



๋‘ ๋ฒˆ์งธ๋กœ v-for ์ง€์‹œ๋ฌธ๊ณผ ํ•จ๊ป˜ ์ˆœ์„œ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ๋ชฉ๋ก์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

v-for๋Š” Vue ์ธ์Šคํ„ด์Šค์˜ ๋ฐ์ดํ„ฐ ์†์„ฑ ๋‚ด๋ถ€์— ์ด๋ฏธ ์ •์˜๋œ people ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด์„ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Vue๋Š” ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๊ตฌ๋ฌธ๊ณผ ๊ฐ™์€ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ค‘ ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„ํŠผ ์š”์†Œ์ธ ๋งˆ์ง€๋ง‰ ๊ฒƒ์€ ํด๋ฆญ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด v-on:click์˜ ์•ฝ์–ด์ธ @click ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ๊ทธ๋“ค ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ข… ์ถœ๋ ฅ์€



์ž‘์€ ์•ฑ์ด๋‚˜ ํฐ ์•ฑ์—์„œ Vue๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ Vue๋กœ ์™„์ „ํ•œ ๋‹จ์ผ ํŽ˜์ด์ง€ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์ด ์ด๊ฒƒ์„ ์ข‹์•„ํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. Vuejs์— ๋Œ€ํ•ด ๋” ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์ž์›
Vue Docs
Vue Directives
Event Handiling in vuejs

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ