Dev.Op
Yollow ๐Ÿ“š
Dev.Op
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (701)
    • ์œ ์ตํ•˜์…จ๋‹ค๋ฉด ๊ด‘๊ณ  ํ•œ๋ฒˆ๋งŒ ํด๋ฆญ ๋ถ€ํƒ๋“œ๋ฆด๊ฒŒ์š”~ (0)
    • ---------------------------.. (0)
    • Stock (1)
      • ์Šˆํผ๋งˆ์ดํฌ๋กœ์ปดํ“จํ„ฐ (2)
    • ๐Ÿง์ „๊ธฐ์ฐจ (72)
      • ๐Ÿ„lg์—๋„ˆ์ง€์†”๋ฃจ์…˜ (0)
      • ๐ŸŠํ˜„๋Œ€์ž๋™์ฐจ (0)
    • ๐Ÿ—๏ธ์†Œํ”„ํŠธ์›จ์–ด (243)
      • ๐Ÿ’ปpython (85)
      • โž•C & C++ (1)
      • โ˜•๏ธTableau (32)
      • ๐Ÿ‘‹SQL & MySQL (20)
      • ๐ŸฌHTML & CSS (14)
      • ๐Ÿ“—JavaScript (31)
      • ๐Ÿ“˜Pspice & Excel (2)
      • ๐Ÿ“•Matlab & COMSOL & CATIA (6)
      • ๐Ÿ“™java & Servlete & JSP (29)
      • ๐Ÿ““Raspberry PI 4 (5)
      • ๐Ÿ”จAnsys (2)
      • DJango (0)
      • Flutter (3)
      • Typescript (0)
      • ๐Ÿ†Vue (5)
      • ๐Ÿ‹Docker (1)
    • ๐Ÿ“‹์ฑ„์šฉ๊ณต๊ณ  (0)
    • ๐Ÿ“WEB & ML & DL ํ”„๋กœ์ ํŠธ (27)
      • ๐ŸŒต2์ฐจ ํ”„๋กœ์ ํŠธ(LG) (9)
    • ๐Ÿงฉ์ผ์ƒ (89)
      • ๐ŸŒค์ฝ”๋”ฉ ๊ณต๋ถ€ ์ผ์ง€ (1)
      • ๐Ÿšด์ž์ „๊ฑฐ (5)
      • ๐Ÿ“ฐํ…Œํฌ (20)
      • ๐ŸฆFood & Cafe (5)
      • ๐Ÿ’‰์˜์–ด ๋„์ ์ด๊ธฐ (5)
      • โšก๋ฐœ์ „์†Œ (6)
      • ๐Ÿ“š๋…์„œ (1)
      • ๐Ÿ›ซ์—ฌํ–‰ (2)
      • ๐Ÿ“ˆ๋ธ”๋กœ๊ทธ๋งˆ์ผ€ํŒ… (6)
    • ๐ŸŒ๊ธˆ์œต (37)
    • ๐ŸŽจ์ทจ์—…End (16)
    • ๐Ÿ‘‹์ž๊ฒฉ์ฆ (150)
      • ๐Ÿ™ˆSQLD๊ฐœ๋ฐœ์ž (12)
      • ๐Ÿ”Œ์ „๊ธฐ๊ธฐ์‚ฌ (116)
      • ๐Ÿข์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (7)
      • ๐ŸŒŽADsP(๋ฐ์ดํ„ฐ๋ถ„์„์ค€์ „๋ฌธ๊ฐ€) (10)
      • ๐Ÿš™1์ข… ๋Œ€ํ˜• ์šด์ „ ๋ฉดํ—ˆ (1)
      • โญTableau Desktop Specialist (2)
    • ๐Ÿฅ‡๊ณต๋Œ€์ด๊ฑฐ์ €๊ฒƒ(๋ง‰ํ•™๊ธฐ) (24)
      • ๐Ÿ“๊ณตํ•™์ˆ˜ํ•™ 2 (1)
      • ๐Ÿบ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์„œ์‹ค์Šต (4)
      • ๐ŸŒCAE (10)
      • โœˆ๏ธ์ž๋™์ฐจ๊ณตํ•™์‹คํ—˜2 (0)
      • ๐Ÿšข์œ ์ฒด์—ญํ•™ (6)
      • ๐Ÿš—ํ˜„๋Œ€์ฐจ H-๋ชจ๋นŒ๋ฆฌํ‹ฐ ํด๋ž˜์Šค 1๊ธฐ (3)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    ๊ณต์ง€์‚ฌํ•ญ

    • Vue, Typescript, React, Tableau,โ‹ฏ
    • ์ง„์ธ์‚ฌ๋Œ€์ฒœ๋ช…(็›กไบบไบ‹ๅพ…ๅคฉๅ‘ฝ)

    ์ธ๊ธฐ ๊ธ€

    ํƒœ๊ทธ

    • SMCI
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ์—”์†”
    • ๋ฐฑ์ค€
    • html
    • ๋ธŒ๋ฃจํŠธํฌ์Šค
    • LG์—๋„ˆ์ง€์†”๋ฃจ์…˜
    • ์‚ผ์„ฑ์ „์ž
    • ์—…๋น„ํŠธ
    • rdfr
    • fluid mechanics
    • ์ž๋ฐ”
    • ์œ ์ฒด์—ญํ•™
    • ์•„์ด์˜ค๋‹‰5
    • ๋ถ€๋“ฑ๋ฅ 
    • ์—๋””์Šจev
    • ipad dual monitor
    • Python
    • ๋น…๋ฐ์ดํ„ฐ
    • lgํ™”ํ•™
    • ํ…Œ์Šฌ๋ผ
    • ์ „๊ธฐ์ฐจ ๋ณด์กฐ๊ธˆ 2021
    • ๋””์นด๋ฅด๊ณ 
    • ์ „๊ธฐ์ฐจ
    • ์—”๋น„๋””์•„
    • css
    • ์ง๋ ฌ๋ฆฌ์•กํ„ฐ
    • vue btn
    • ADsP
    • ๋น…๋ฐ์ดํ„ฐ๋ถ„์„์ค€์ „๋ฌธ๊ฐ€

    ์ตœ๊ทผ ๋Œ“๊ธ€

    ์ตœ๊ทผ ๊ธ€

    ํ‹ฐ์Šคํ† ๋ฆฌ

    hELLO ยท Designed By ์ •์ƒ์šฐ.
    Dev.Op

    Yollow ๐Ÿ“š

    [Vue.js] props ์ด์šฉํ•˜๊ธฐ
    ๐Ÿ—๏ธ์†Œํ”„ํŠธ์›จ์–ด/๐Ÿ†Vue

    [Vue.js] props ์ด์šฉํ•˜๊ธฐ

    2022. 12. 8. 17:15
    ๋ฐ˜์‘ํ˜•

    vue์˜ ๋ฌธ๋ฒ•์„ ์ตํžˆ๋ ค๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ์ง์ ‘ ๋‹ค๋ค„๋ด์•ผ ํ•œ๋‹ค.

     

    props๋ฅผ ์ด์šฉํ•˜์—ฌ, ์ž์‹ ์ปดํฌ๋„ŒํŠธ์˜ ๊ตฌ์กฐ๋ฅผ ์žฌํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋ฅผ ๋ณด์ด๊ณ ,

     

    ์†์„ฑ์„ ์–ด๋–ค์‹์œผ๋กœ ๋ณด๋‚ด๋Š”์ง€ ์‚ดํŽด๋ณด๋Š”๊ฒŒ ์ด๋ฒˆ ๊ธ€์—์„œ์˜ ํ•ต์‹ฌ์ด๋‹ค.

     

    ๋˜ํ•œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ๋Š” ์ž๊ธฐ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ๋ฐ”์ธ๋”ฉํ•˜๋Š”์ง€ :(์ฝœ๋ก ) ์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

     

    App.vue

    1. ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ๋Š” import / from ์„ ํ™œ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.

     

    2. ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๋Š” data ์•ˆ์— ๋„ฃ์–ด๋‘๊ณ , :color ์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ”์ธ๋”ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.

     

    <template>
      <div id="root">
        <MyBtn1 color="red" />
        <MyBtn1 color="royalblue" />
        <MyBtn1 :color="color1" />
        <MyBtn1 :color="color2"/>
        <MyBtn1 large />
        <MyBtn1 />
      </div>
    </template>

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

    export default {
      components: {
        MyBtn1
      },
      data () {
        return {
          color1: "black",
          color2: "#826"
        }
      }
    }


    </script>

    <style scoped>
     
    </style>

     

     

    MyBtn1.vue

    1. components ํด๋” ์•ˆ์— ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ๋กœ์„œ, ์ž์‹ ์ปดํฌ๋„ŒํŠธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

     

    2. props๋กœ ์ž์‹์—์„œ๋Š” ์–ด๋–ค์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์†์„ฑ๋ช…์„ props ์•ˆ์— ์ ๊ณ , ๊ทธ ๊ฐ’์€ ์–ด๋–ค์‹์œผ๋กœ ํ‘œํ˜„๋˜๋Š”์ง€ type๊ณผ default ๊ฐ’์„ ์„ค์ •ํ•ด๋‘”๋‹ค.

     

    3. ์žฌ์‚ฌ์šฉ๋˜์–ด ์ง€๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด๋ฏ€๋กœ, DOM์—์„œ ๋ณด์—ฌ์ง€๋Š” template ์˜ ๊ตฌ์กฐ์—์„œ :style ์— ์–ด๋–ค ๊ฐ’๋“ค์ด ์˜ค๋Š”์ง€๋ฅผ "{ backgroundColor: color } " ์ด๋Ÿฐ์‹์œผ๋กœ ์ผ€๋ฐฅ์ผ€์ด์Šค ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•ด์ค€๋‹ค.

     

     

    <template>
      <div 
        :style="{ backgroundColor: color }"
        class="btn">
        Apple
      </div>  
    </template>
    
    <script>
    export default {
      props: {
        color: {
          type: String,
          default: 'gray'
        }
      }
    }
    </script>
    <style scoped>
      .btn {
        display: inline-block;
        margin: 4px;
        padding: 6px 12px;
        border-radius: 4px;
        background-color: gray;
        color: white;
        cursor: pointer;
      }
    
    </style>

     

    <์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ>

    4. ๊ฐ์ฒด ๋ฐ์ดํ„ฐ ๋‚ด๋ถ€์—์„œ '์†์„ฑ๊ณผ ๊ฐ’์ด ๊ฐ™์€ ๊ฒฝ์šฐ'  ๊ฐ’์„ ์ƒ๋žตํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

    - large ๋ผ๋Š” ์†์„ฑ์„ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

     

    <template>
      <div
        :class= "{ large : large }"
        ...

    ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ

     

    <template>
      <div
        :class= "{ large }"

     

    ์ด๋Ÿฐ์‹์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    <script>
    export default {
      props: {
        color: {
          type: String,
          default: 'gray'
        },
        large: {
          type: Boolean,
          default: false
        }
      }
    
    
    ...

     

    ์ด๋ ‡๊ฒŒ ๊ตฌํ˜„ํ•˜๋ฉด, ํŠน์ • ๋ฒ„ํŠผ์˜ ํด๋ž˜์Šค์˜ ๋ช…์— ์ถ”๊ฐ€๋กœ ๋‚ด์šฉ์„ ๊ธฐ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    ์ด๋ ‡๊ฒŒ ํŠน์ • ํด๋ž˜์Šค ๋ช…์„ ๋ฐ”๊พธ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด, ์ผ๋ถ€ ๋ฒ„ํŠผ์˜ ์Šคํƒ€์ผ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

    MyBtn1.vue  / ํ™”๋ฉดํฌ๊ธฐ
    <style scoped>
      .btn {
        display: inline-block;
        margin: 4px;
        padding: 6px 12px;
        border-radius: 4px;
        background-color: gray;
        color: white;
        cursor: pointer;
      }
    
      .btn.large {
        font-size: 20px;
        padding: 10px 20px;
      }
    
    </style>

     

    ์—ฌ๊ธฐ์„œ .btn ๊ณผ .btn.large ์˜ ์ฝ”๋“œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, scss ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

     

    scss ์—์„œ๋Š” ์ˆซ์ž 7์— ์žˆ๋Š” ๋ฌธ์ž์ธ & ์„ ์ด์šฉํ•˜๋ฉด, ๋™์ผํ•œ ๋ฌธ์ž๋ฅผ ๋Œ€์ฒดํ•ด์„œ ๋’ค์— ์ถ”๊ฐ€๋กœ ์ฒด์ธํ˜•์‹์œผ๋กœ ๊ฐ’์„ ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. scss ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด style ํƒœ๊ทธ์—์„œ scoped lang ๋ถ€๋ถ„์—์„œ "scss"๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค๋Š” ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

     

    <style scoped lang="scss">
      .btn {
        display: inline-block;
        margin: 4px;
        padding: 6px 12px;
        border-radius: 4px;
        background-color: gray;
        color: white;
        cursor: pointer;
        &.large {
          font-size : 20px;
          padding: 10px 20px;
        }
      }
    
    </style>

     

     

    ๋ฒ„ํŠผ ํฌ๊ธฐ

     

    ๊ตฌํ˜„ ํ™”๋ฉด

    ์ตœ์ข… ํ™”๋ฉด

    ๋ฐ˜์‘ํ˜•
    ์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

    '๐Ÿ—๏ธ์†Œํ”„ํŠธ์›จ์–ด > ๐Ÿ†Vue' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    vue์—์„œ eslint ์‚ฌ์šฉํ•˜๊ธฐ(eslintrc.js)  (0) 2023.04.09
    [Vue.js] ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง๊ณผ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ  (0) 2022.12.12
    npx, npm์˜ ์ฐจ์ด์™€ vscode ์‹คํ–‰ ๋ฐฉ๋ฒ•  (0) 2022.12.02
    [Vue.js]ํŠน์ • ๋ฐ์ดํ„ฐ๋“ค์˜ ๊ฐ’๋“ค์„ ํ•˜์ด๋ผ์ดํŒ… ํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?  (0) 2022.12.01
      '๐Ÿ—๏ธ์†Œํ”„ํŠธ์›จ์–ด/๐Ÿ†Vue' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
      • vue์—์„œ eslint ์‚ฌ์šฉํ•˜๊ธฐ(eslintrc.js)
      • [Vue.js] ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง๊ณผ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ
      • npx, npm์˜ ์ฐจ์ด์™€ vscode ์‹คํ–‰ ๋ฐฉ๋ฒ•
      • [Vue.js]ํŠน์ • ๋ฐ์ดํ„ฐ๋“ค์˜ ๊ฐ’๋“ค์„ ํ•˜์ด๋ผ์ดํŒ… ํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?
      Dev.Op
      Dev.Op
      Interest: CS, Drive

      ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”