zoaseo
To Infinity And Beyond
zoaseo
전체 방문자
오늘
어제
  • 분류 전체보기 (760)
    • 개발이 좋아서 (378)
      • Java가 좋아서 (42)
      • Spring이 좋아서 (50)
      • JPA가 좋아서 (0)
      • QueryDSL이 좋아서 (26)
      • Docker가 좋아서 (7)
      • Redis가 좋아서 (7)
      • AWS가 좋아서 (5)
      • CI/CD가 좋아서 (6)
      • Troubleshooting이 좋아서 (4)
      • Kotlin이 좋아서 (7)
      • SQL이 좋아서 (6)
      • HTTP가 좋아서 (21)
      • JavaScript가 좋아서 (30)
      • TypeScript가 좋아서 (6)
      • Vue가 좋아서 (21)
      • Flutter가 좋아서 (61)
      • React가 좋아서 (20)
      • Redux(React)가 좋아서 (2)
      • Angular가 좋아서 (22)
      • HTML이 좋아서 (9)
      • CSS가 좋아서 (15)
      • PHP가 좋아서 (9)
      • Illustrator가 좋아서 (2)
    • 노력이 좋아서 (169)
    • 결과물이 좋아서 (14)
    • 코딩연습이 좋아서 (78)
      • 이론이 좋아서 (62)
      • SQL이 좋아서 (0)
    • 유용한 사이트가 좋아서 (28)
    • Github (2)

인기 글

티스토리

hELLO · Designed By 정상우.
zoaseo

To Infinity And Beyond

개발이 좋아서/Vue가 좋아서

9장 디렉티브

2023. 9. 13. 15:55

1) directives

<template>
    <div>
        <p>{{ msg }}</p>
        <p v-text="msg"></p>
        <p v-html="htmlStr"></p>
        <p v-text="htmlStr"></p>
        <p v-pre>{{ msg 안녕하세요 }}</p>
        <p v-once>{{ msg }} !!!!</p>
    </div>
</template>

<script>
import { ref } from 'vue';

export default {
    setup() {
        const msg = ref('안녕하세요');
        const htmlStr = ref('<strong>안녕!!!</strong>');

        return { msg, htmlStr };
    },
};
</script>

<style lang="scss" scoped></style>

2) cloak

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <script src="https://unpkg.com/vue@next"></script>
    <title>Vite App</title>
    <style>
      [v-cloak] {
        display: none
      }
    </style>
  </head>
  <body>
    <div id="app">
      <p v-cloak>{{ message }}</p>
    </div>
    <script>
      const App = {
        data() {
          return {
            message: '안녕하세요'
          }
        }
      }
      setTimeout(() => {
        Vue.createApp(App).mount('#app')
      }, 3000)
    </script>
  </body>
</html>

3) v-memo

<template>
    <div>
        <div v-memo="[views, likes]">
            <p>subscribers: {{ subscribers }}</p>
            <p>views: {{ views }}</p>
            <p>likes: {{ likes }}</p>
        </div>
        <button @click="subscribers++">Subs++</button>
        <button @click="views++">Views++</button>
        <button @click="likes++">Likes++</button>
        <div>
            <p>subscribers: {{ subscribers }}</p>
            <p>views: {{ views }}</p>
            <p>likes: {{ likes }}</p>
        </div>
    </div>
</template>

<script>
import { ref } from 'vue';

export default {
    setup() {
        const subscribers = ref(4000);
        const views = ref(400);
        const likes = ref(20);
        return { subscribers, views, likes };
    },
};
</script>

<style lang="scss" scoped></style>

'개발이 좋아서 > Vue가 좋아서' 카테고리의 다른 글

11장 양방향 바인딩(v-model)  (0) 2023.09.14
10장 이벤트 처리  (0) 2023.09.13
8장 목록 렌더링(v-for)  (0) 2023.09.13
7장 조건부 렌더링(v-if, v-show)  (0) 2023.09.13
6장 class와 style 바인딩  (0) 2023.09.13

    티스토리툴바