In Nuxt.js, I did this folder structure:
├── parent
│ ├── child1.vue
│ └── child2.vue
├── parent.vue
In parent.vue, I have this:
<template>
<div>
<h3>Parent element</h3>
<ul>
<li><nuxt-child/></li>
<li><nuxt-child/></li>
</ul>
</div>
</template>
In child1.vue:
<template>
<div>
<h3>Child 1</h3>
</div>
</template>
In child2.vue:
<template>
<div>
<h3>Child 2</h3>
</div>
</template>
I launch the server (yarn run dev) and go this URI: http://localohost:3000/parent
where I see this:
Parent element
-
-
If I go to http://localohost:3000/parent/child1
, I see this:
Parent element
- Child 1
- Child 1
If I go to http://localohost:3000/parent/child2
, I see this:
Parent element
- Child 2
- Child 2
Question:
From the documentation, I understand that child1.vue and child2.vue are children of parent.vue, so I expect to see them list when I visit http://localhost:3000/parent
, but they were not displayed. Each child is displayed only when I point to its URI. Anyone to explain me this behavior?
The <nuxt-child/>
is a replacement for the child component, based on the route.
Using one is all that you need:
<template>
<div>
<h3>Parent element</h3>
<nuxt-child/>
</div>
</template>
Then put what you need that differs in the child.
Edit: the child page is brought in based on the route. This is a manual way of doing nested routes.
For example, say I had some events. The parent page is event
, and then each event is a child.
- events
- christmas
- easter
When I go to events/christmas
or events/easter
, I’ll see the ‘event’ page but with the contents of the event I wanted. The parent page events/
could possibly just contain a list of all the events for me to visit.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With