๐Ÿ“• Language/Vue

[Age of Vue] Vue.js ์‹œ์ž‘ํ•˜๊ธฐ - 31. ์‹ฑ๊ธ€ ํŒŒ์ผ ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑํ•˜์—ฌ ๋ฐฐ์šด ๋‚ด์šฉ ์ ์šฉํ•ด๋ณด๊ธฐ (2)

a n u e 2022. 5. 8. 14:19

AppHeader.vue์— App.vue์—์„œ ์ •์˜ํ•œ data๋ฅผ props๋กœ ๋‚ด๋ ค๋ณด์ž.


AppHeader.vue

<!-- ์ปดํฌ๋„ŒํŠธ๋Š” ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ตœ์†Œ ๋‘ ๋‹จ์–ด๋กœ ์กฐํ•ฉ (html ๊ธฐ๋ณธ ํƒœ๊ทธ์™€ ํ—ท๊ฐˆ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ)-->
<template>
  <header>
      <h1>Header</h1>
      <!-- App.vue์—์„œ props ๋ฐ์ดํ„ฐ๋กœ ๋„˜์–ด์˜จ ๊ฐ’์ด ์ž๋™์œผ๋กœ ๋“ค์–ด์˜ด-->
      <h1>{{ propsdata }}</h1>
  </header>
</template>

<script>
export default {
    //์ธ์Šคํ„ด์Šค ์˜ต์…˜
    //1.propsdata๋ผ๋Š” ์ด๋ฆ„์˜ ๋ฐฐ์—ด์— ์ƒ์œ„์ปดํฌ๋„ŒํŠธ์—์„œ ๋‚ด๋ ค์˜จ props data๋‹ด๋Š”๋‹ค.
    props : ['propsdata']
}
</script>

<style>

</style>

 

App.vue

<template>
  <!-- template์—๋Š” html element๊ฐ€ ์ตœ์ƒ์œ„ 1๊ฐœ๋งŒ ์žˆ์–ด์•ผํ•œ๋‹ค -->
  <div>
    {{ str }}
    <!--
            //AppHeader.vue์—์„œ ์ •์˜ํ•œ ์ด๋ฆ„="App.vue(์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ)์˜ ๋ฐ์ดํ„ฐ ์ด๋ฆ„"
      <app-header v-bind:ํ”„๋กญ์Šค ์†์„ฑ ์ด๋ฆ„="์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ์ดํ„ฐ ์ด๋ฆ„"></app-header>
      str์ด๋ผ๋Š” data๊ฐ€ ์™ผ์กฑ์˜ ํ”„๋กญ์Šค๋กœ ๋‹ด๊ฒจ ๋‚ด๋ ค๊ฐ
    -->
              <!-- 2. AppHeader.vue์—์„œ ์ •์˜ํ•œ ์ด๋ฆ„์ธ propsdata๋ฅผ ๋„ฃ์–ด์คŒ -->
    <app-header v-bind:propsdata="str"></app-header>
  </div>
</template>

<script>
import AppHeader from './components/AppHeader.vue'

export default {
  data : function() {
    return {
      str : 'Header'
    }
  },
  components : {
    //๋‚ด๊ฐ€ ์ •์˜ํ•œ ์ปดํฌ๋„ŒํŠธ ๋ณ€์ˆ˜ : ๋‚ด๊ฐ€ ์ •์˜ํ•œ import ๋ณ€์ˆ˜
    'app-header' : AppHeader
  }
}
</script>

<style>
</style>