๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/ํ”„๋ ˆ์ž„์›Œํฌ Vue

Single File Components ์ฒด๊ณ„

<Do it! Vue.js ์ž…๋ฌธ>์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๊ฒŒ์‹œ๋ฌผ 

kr.vuejs.org/v2/guide/components.html

 


<๋ทฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ>

1. Single File Components ์ฒด๊ณ„

.vue ํŒŒ์ผ๋กœ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹ (.vue ํŒŒ์ผ 1๊ฐœ = ์ปดํฌ๋„ŒํŠธ 1๊ฐœ)

 

 

1)  .vue ํŒŒ์ผ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

<template>
  <!-- HTML ํƒœ๊ทธ ๋‚ด์šฉ -->
</template>

<script>
  export default{
    //์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์šฉ
  }
</script>

<style>
  <!-- CSS ์Šคํƒ€์ผ ๋‚ด์šฉ -->
</style>

 

ex) "์ปดํฌ๋„ŒํŠธ๋ช….vue" ํŒŒ์ผ

<template>
  <div>
    <span>
      <button>{{message}}</button>
    </span>
  </div>
</template>

<script>
  export default{
    data:{
      message: 'click this button'
    }
  }
</script>

<style>
  span{
    font-size: 1.2em;
  }
</style>

 

2. ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑํ•˜๊ณ  ๋“ฑ๋กํ•˜๊ธฐ

1) ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ

  1. ํ”„๋กœ์ ํŠธ ํด๋”์˜ srcํด๋” ๋ฐ‘์— componentsํด๋” ์ƒ์„ฑ
  2. componentsํด๋” ์•ˆ์— "์ปดํฌ๋„ŒํŠธ๋ช….vue"ํŒŒ์ผ๋“ค์„ ์ปดํฌ๋„ŒํŠธ๋ณ„๋กœ ์ƒ์„ฑํ•ด์ค€๋‹ค.
  3. .vueํŒŒ์ผ ์•ˆ์— ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ชจ๋‘ ์ž‘์„ฑํ•ด์ค€๋‹ค.

 

 

<template>
  <div>header</div>
</template>

<script>
export default {
  components: {}
};
</script>

<style></style>

 

2) ์ปดํฌ๋„ŒํŠธ ๋“ฑ๋ก

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๋ชจ๋‘ ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์ธ App.vue์— ๋“ฑ๋กํ•ด์•ผํ•œ๋‹ค.
  • src/App.vueํŒŒ์ผ์˜ ๊ธฐ์กด ์ฝ”๋“œ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์ง€์šฐ๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ๋“ฑ๋กํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
<template>
  <div id="app">
    <TodoHeader></TodoHeader>
    <TodoInput></TodoInput>
    <TodoList></TodoList>
    <TodoFooter></TodoFooter>
  </div>
</template>

<script>
//ํŠน์ • ์ปดํฌ๋„ŒํŠธ์—์„œ ๋‹ค๋ฅธ ์œ„์น˜์— ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ๋‚ด์šฉ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
import TodoHeader from "./components/TodoHeader.vue";
import TodoInput from "./components/TodoInput.vue";
import TodoList from "./components/TodoList.vue";
import TodoFooter from "./components/TodoFooter.vue";

//์ง€์—ญ ์ปดํฌ๋„ŒํŠธ ๋“ฑ๋ก
export default {
  components: {
    TodoHeader: TodoHeader,
    TodoInput: TodoInput,
    TodoList: TodoList,
    TodoFooter: TodoFooter
  }
};
</script>

<style></style>

 

 

 

 

'๐Ÿ’ปWEB FrontEnd > ํ”„๋ ˆ์ž„์›Œํฌ Vue' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

vue์˜ ๋ฐ˜์‘์„ฑ reactivity  (0) 2021.02.07
Vuex  (0) 2021.02.06
Vue์˜ template์†์„ฑ  (0) 2020.07.04
๋ทฐ HTTP ํ†ต์‹   (0) 2020.07.02
Vue Router  (0) 2020.07.02