728x90
반응형
Provide-Inject
부모컴포넌트에 provide
provide: { username: 'scalper' }
해당 값을 전달받을 먼 자식 컴포넌트에게 inject (배열로)
export default {
name: 'comp-3',
inject: ["username"],
}
생산성 없는 동적라우팅의 모습 ▼
<template>
<div>
<button @click="activeTab = 'menu1'">menu1</button>
<button @click="activeTab = 'menu2'">menu2</button>
<button @click="activeTab = 'menu3'">menu3</button>
<Menu1 v-if="activeTab ==='menu1'" />
<Menu2 v-if="activeTab ==='menu2'" />
<Menu3 v-if="activeTab ==='menu3'" />
</div>
</template>
<script>
import Menu1 from "./components/tabItems/Menu1.vue";
import Menu2 from "./components/tabItems/Menu2.vue";
import Menu3 from "./components/tabItems/Menu3.vue";
export default {
name: "App",
components: { DetailView , ProvideInjectComp, Menu1, Menu2, Menu3},
data() {
return {
activeTab:"menu1"
};
};
</script>
Dynamic component
component라는 태그를 사용해서 다이나믹 컴포넌트를 만들 수 있다.
is라는 prop을 넘기게 되고 is에 컴포넌트 이름이 넘겨지게 된다.
keep-alive 화면이 전환될 때마다 렌더링되지만, 각 컴포넌트의 내용을 유지시켜준다.
<template
<div>
<button @click="activeTab = 'menu1'">menu1</button>
<button @click="activeTab = 'menu2'">menu2</button>
<button @click="activeTab = 'menu3'">menu3</button>
<keep-alive>
<component :is="activeTab"></component>
</keep-alive>
</div>
</template>
728x90
'JS_Framework > vue_Architecture' 카테고리의 다른 글
$ref, $refs - DOM접근(vue.js) (0) | 2023.01.10 |
---|---|
http통신 연습(vue) (0) | 2023.01.09 |
Custom Event (vue.js) (1) | 2023.01.06 |
Components(1) (0) | 2023.01.06 |
Vue Router - Route, Router 차이 (0) | 2023.01.05 |
댓글