반응형
prop : 부모가 자식에게 데이터를 넘길때 사용 <> 자식이 부모에게 보낼때는 emit(event)를 이용한다
컴포넌트 파일 만들기 (component 파일명은 대문자로 시작합니다)
src > components > my > TopMenuProps.vue 파일 생성
TopMenuProps.vue
<template>
<div>
{{ title }}
{{ link }}
</div>
</template>
<script>
import { defineComponent } from "vue";
export default defineComponent({
name: "TopMenuProps",
props: {
link: {
type: String, //타입 설정 (props 옵션값)
required: true, // 필수 사항으로 체크 (props 옵션값)
},
title: {
type: String, //타입 설정 (props 옵션값)
required: true, // 필수 사항으로 체크 (props 옵션값)
},
},
});
</script>
<style lang="scss"></style>
페이지에 컴포넌트 추가 하기
src > layouts > my > MyPage.vue 파일 생성
MyPage.vue
<template>
<q-layout view="lHh Lpr lFf">
<q-header>
<TopMenuProps
v-for="link in topMenuList"
:key="link.title"
v-bind="link"
></TopMenuProps>
</q-header>
<q-page-container>
<router-view />
</q-page-container>
</q-layout>
</template>
<script>
import { defineComponent } from "vue";
import TopMenuProps from "src/components/my/TopMenuProps.vue"; // 자식 (컨포넌트) 선언
// 자식 (컨포넌트)에게 보낼 데이터
const dataTopMenuList = [
{ link: "/", title: "메인" },
{ link: "/menu1", title: "메뉴1" },
{ link: "/menu2", title: "메뉴2" },
{ link: "/menu3", title: "메뉴3" },
{ link: "/menu4", title: "메뉴4" },
];
export default defineComponent({
name: "MyPage",
//선언한 컨포넌트를 등록
components: { TopMenuProps },
setup() {
return {
topMenuList: dataTopMenuList, // 자식한테 데이터 전달
};
},
});
</script>
<style lang="scss"></style>
결과 확인
vue 3 + quasar로 작업되었습니다
반응형
'Vue.js | Node.js' 카테고리의 다른 글
vue js 3 - props 메뉴 컴포넌트 만들기 (0) | 2022.09.20 |
---|---|
vue js 3 - 자식 컴포넌트에서 데이터 출력 (0) | 2022.09.16 |
quasar vue3 설치 (0) | 2022.08.29 |
visual studio code vue 추가로 설치한 플러그인 (0) | 2022.08.25 |
vue3 설치 (0) | 2022.08.25 |
Comments