일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 자바 합성수 찾기
- 개미 군단 자바
- 배열 순환 문제 공식
- 자바 팩토리얼
- 왓챠피디아 클론 코딩
- 접속 url 출력
- 스프링부트 의존성 설정
- string과 stringbuilder 성능 차이
- stringbuilder란
- 외계행성의 나이 자바
- spring boot 배너 설정
- string과 stringbuilder의 차이
- 펙토리얼
- 배열 순환 자바
- 배열 순환
- 숨어있는 숫자의 덧셈 (1) 자바
- 프로그래머스 공 던지기 게임
- string과 stringbuilder
- 모스부호(1) 자바
- 스프링 부트 프로젝트 세팅
- string과 stringbuilder 성능 최적화
- 자바 소인수분해
- 프로그래머스
- 스프링 부트 배너 설정
- 경우의 수 자바
- 프로그래머스 문자열 정렬하기(1)
- 티스토리챌린지
- 오블완
- 소인수분해 구하는 공식
- string과 stringbuilder의 차이점
- Today
- Total
여름 언덕에서 배운 것
<script setup>, <style scope> 본문
1. <script setup>
<script setup>는 Vue 3에서 도입된 Composition API를 사용하기 위한 간결한 문법입니다.
이 문법은 `setup` 함수 내에서 직접적으로 변수나 함수를 정의할 수 있게 해줍니다.
<script setup>
import { ref } from 'vue'
const count = ref(0)
function increment() {
count.value++
}
</script>
위 예제에서는 `count`라는 반응성 있는 참조와 `increment`라는 함수를 직접 정의했습니다.
- Props와 Emits:
`defineProps`와 `defineEmits`를 사용하지 않고도 props와 emits를 타입 어노테이션으로 정의할 수 있습니다.
<script setup>
const props = defineProps(['msg'])
const emit = defineEmits(['update'])
</script>
위와 같은 코드는 아래와 같이 간결하게 작성할 수 있습니다.
<script setup>
import { ref } from 'vue'
const count = ref(0)
const { msg } = defineProps()
const emit = defineEmits()
</script>
-<script setup>` 문법을 사용할 때는 일부 Vue 3 Composition API 기능들이 자동으로 내장되어 있습니다.
이렇게 되면 일부 API 함수들을 명시적으로 임포트하지 않아도 됩니다.
`<script setup>` 내에서, `defineProps`, `defineEmits`, `withDefaults`, 그리고 `useContext` 같은 함수들은 내장되어 있으므로 별도로 `import` 할 필요가 없습니다. 그러나 다른 Composition API 기능들, 예를 들면 `ref`, `reactive`, `watch`, `computed` 등은 여전히 `import` 해야 합니다.
setup함수는 객체를 반환한다.
2. <style scoped>
Vue 컴포넌트에서 스타일을 정의할 때, 이 스타일이 해당 컴포넌트에만 적용되길 원하면 `<style scoped>`를 사용합니다.
- 동작 원리:
`scoped`가 추가되면, Vue는 해당 컴포넌트의 DOM에 유니크한 data 속성 (예: `data-v-123456`)을 추가하고, 정의된 CSS도 동일한 속성 선택자로 확장하여 해당 스타일이 해당 컴포넌트의 엘리먼트에만 적용되도록 합니다.
<template>
<div class="my-component">
<p>이 텍스트는 특별한 스타일을 가질 것입니다.</p>
</div>
</template>
<style scoped>
.my-component p {
color: blue;
}
</style>
위 예제에서, `color: blue` 스타일은 이 컴포넌트의 `<p>` 태그에만 적용됩니다.
다른 컴포넌트에서 동일한 `.my-component p` 선택자를 사용하더라도, 이 스타일은 적용되지 않습니다.
이 두 기능을 함께 사용하면, 각 Vue 컴포넌트는 로직과 스타일 모두에서 독립적이며 재사용 가능한 단위가 됩니다.
'가랑비에 옷 젖는 줄 모른다 💻 > Vue.js' 카테고리의 다른 글
[Vue3시작하기] 프로젝트 생성 및 로그인 폼 UI 구성 (0) | 2023.11.17 |
---|---|
[Vue3시작하기]Vue 싱글 파일 컴포넌트 (1) | 2023.10.22 |
Vue 프로젝트 포함하는 방법 2가지 (CDN , npm/yarn) (0) | 2023.10.19 |
[Vue3시작하기] Vue CLI,라이브러리, 파일 임포트 방식 설명 (0) | 2023.10.18 |
[Vue3시작하기] v-bind 스타일 속성변경 (0) | 2023.10.18 |