나는 이런 식으로 HTML을 가지고 :하위 구성 요소의 함수를 실행 하시겠습니까?
<div id="nav">
<homenav v-on:navigation="switchNav(this.nav)" v-if="nav == 'homeNav'"></homenav>
<mainav v-if="nav == 'mainNav'"></mainav>
</div>
내 JS는 다음과 같이이다 :
<template>
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="">Website Builder</a>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav nav-fill w-100">
<li class="nav-item">
<a class="nav-link" href="/#/">Create</a>
</li>
<li class="nav-item">
<a v-on:click="navData" class="nav-link" href="/#/how">How</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/#/about">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/#/youtube">Videos</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/#/login">Go to main site</a>
</li>
</ul>
</div>
</nav>
</template>
<script>
export default {
data() {
return {
nav: ''
}
},
methods: {
navData() {
this.nav = 'mainNav';
this.$emit('navigation');
console.log(this.nav);
}
}
}
:
이 homenav 구성 요소의
Vue.component('homenav', Navigation);
Vue.component('mainav', Navigation2);
new Vue({
el: '#nav',
data: {
nav: 'homeNav'
},
methods: {
switchNav: function (test) {
console.log(test);
console.log(this.nav);
}
}
});
일부는 내가 원하는 것을 보여
그래서 여기에 달성하려고하는 것은 네비게이션의 동적 전환입니다. 사용자가 메인 사이트 링크로 이동을 클릭하면 nav가 homenav에서 mainav로 동적으로 변경됩니다. 그러나, 나는 그것을 성취 할 방법을 모르며 나의 시도는 위에있다. 도와주세요 ..
내가 가장 최근에 시도한대로 편집하여 자식 + 부모 기능의 로그를 관리하도록했습니다. 그것은 homeNav와 mainNav를 함께 관리합니다. 그러나 아이에게 this.nav를 전달해야 부모가 this.nav를 업데이트 할 수 있습니다. 왜냐하면 둘 다 출력 함에도 불구하고 탐색이 변경되지 않기 때문입니다.
[이벤트] (https://vuejs.org/v2/guide/components.html#Custom-Events) 또는 [Vuex] (https://vuex.vuejs.org)와 같은 상태 관리 시스템을 사용할 수 있습니다. /en/intro.html). – ceejayoz
내가 잘못하고있는 경우를 제외하고는 이벤트를 사용해 보았습니다. 가능한 경우 해당 메서드 또는 둘 모두를 사용하여 코드에 예제를 제공 할 수 있습니까? – Przemek
이벤트를 어떻게 시도했는지 보여주십시오. 시도한 코드 – ceejayoz