๐Ÿ“• Language/Vue

[Age of Vue] Vue.js ์‹œ์ž‘ํ•˜๊ธฐ - 14.์ปดํฌ๋„ŒํŠธ ํ†ต์‹  (์ƒํ•˜์œ„ ๊ฐ„)

a n u e 2022. 5. 2. 00:08
                      โ”Œ> ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ  โ”
์ด๋ฒคํŠธ ๋ฐœ์ƒโ””  ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ <โ”˜ props ์ „๋‹ฌ

์ƒ์œ„์—์„œ ํ•˜์œ„๋กœ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ ค์คŒ, ํ”„๋กญ์Šค ์†์„ฑ
 - ๋ฐ์ดํ„ฐ(Props ์†์„ฑ)๋Š” ๋Š˜ ์œ„์—์„œ ์•„๋ž˜๋กœ ๋‚ด๋ ค์˜จ๋‹ค

ํ•˜์œ„์—์„œ ์ƒ์œ„๋กœ๋Š” ์ด๋ฒคํŠธ(Event)๋ฅผ ์˜ฌ๋ ค์คŒ, ์ด๋ฒคํŠธ ๋ฐœ์ƒ

Props ์†์„ฑ

<app-header v-bind:ํ”„๋กญ์Šค ์†์„ฑ ์ด๋ฆ„="์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ์ดํ„ฐ ์ด๋ฆ„"></app-header>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!--
            <app-header v-bind:ํ”„๋กญ์Šค ์†์„ฑ ์ด๋ฆ„="์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ์ดํ„ฐ ์ด๋ฆ„"></app-header>
        -->
        <app-header v-bind:propsdata="message"></app-header>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var appHeader = {
            template : '<h1>Header</h1>' ,
            props : ['propsdata']
        }

        new Vue({
                el : '#app' ,
                components : {
                    'app-header' : appHeader
                },
                data : {
                    /**
                     ์ด data ์†์„ฑ์„ Root ์ปดํ† ๋„ŒํŠธ์—์„œ
                     app Header ์ปดํฌ๋„ŒํŠธ๋กœ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด
                     Props ์‚ฌ์šฉํ•œ๋‹ค.
                     */
                    message : 'hi'
                }
            })
    </script>
</body>
</html>

๊ฒฐ๊ณผ

 

์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์ธ Root์—๋งŒ ์žˆ์—ˆ๋˜ data message 'hi'

 

app-header ์ปดํฌ๋„ŒํŠธ์—๋„ 'hi'๊ฐ€ ์ƒ๊น€. data๋ฅผ ์œ„์—์„œ ์•„๋ž˜ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚ด๋ ค์ค€ ๊ฒƒ


VS Code
shitf + alt = ์—ด ๋ณต์‚ฌ
ctrl + shitf + K = ์—ด ์‚ญ์ œ
alt + ๋ฐฉํ–ฅํ‚ค = ์—ด ์ด๋™

 


https://joshua1988.github.io/web-development/vuejs/vuejs-tutorial-for-beginner/#vue-components