Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)


Posted in Javascript onNovember 05, 2020

Nuxt嵌套路由官网上的API详解:点击链接

看了官网上的api实现了官网的案例你会发现访问父页面中只能显示父页面中的内容,要想默认的在<nuxt-child>区域显示一个页面内容怎么办?

Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)

Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)

自己案例代码:

pages/parent.vue

<template>
 <div>
 <h2>父组件的页面的内容</h2>
 <ul>
 <!-- 进行切换子页面,写法同vue.js -->
 <li><nuxt-link to='/parent/child'>child</nuxt-link></li>
 <li><nuxt-link to='/parent/child2'>child2</nuxt-link></li>
 </ul>
 <hr>
 <div class="box">
 <p>嵌套子页面内容区</p>
 <!-- <nuxt-child>标签在父页面组件中相当于是子页面组件的占位符;嵌套中这个不可少 -->
 <nuxt-child keep-alive :foobar="123"></nuxt-child>
 </div>
 </div>
</template>
<script>
export default {
 
}
</script>
<style scoped>
.box{
 margin-top: 20px;
 padding: 20px;
 border: 2px solid pink;
 border-radius: 5px;
}
</style>

pages/parent/index.vue

<template>
 <div>
 <h2>嵌套子组件中的默认页面index.vue</h2>
 </div>
</template>
<script>
export default {
 
}
</script>
<style scoped>
 
</style>

pages/parent/child.vue

<template>
 <div>
 <h2>嵌套子组件中的页面child</h2>
 <p>foobar:{{foobar}}</p>
 </div>
</template>
<script>
export default {
 props:['foobar']
}
</script>
<style scoped>
 
</style>

pages/parent/child2.vue

<template>
 <div>
 <h2>嵌套子组件中的页面child2</h2>
 <p>foobar:{{foobar}}</p>
 </div>
</template>
<script>
export default {
 props: ['foobar']
}
</script>
<style scoped>
 
</style>

效果如下:

Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)

Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)

补充知识:nuxt二级路由

耗费了大半天的时间,终于把页面的二级路由配置好了

先看我的目录

Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)

如果没有登陆页,根本就不用考虑嵌套路由的问题,主要的menu跳转和<nuxt />可以直接写到layouts/default.vue中,首页可以放到pages/index.vue,就可以了。

好了,步入核心的

情景,在中间件middleware/authenticated.js

// 定义了一个中间件, 如果用户未登录, 则跳转登录页。
export default function ({
 store,
 redirect
}) {
 if (!store.state.user) {
 return redirect('/login')
 }
}

首先,需要知道,pages/index.vue这个文件必须有,这是给路由'/',定义的页面,但是我真正的首页是在user/index.vue

pages/index.vue下

<template>
 <div style="height:100%;">

 </div>
</template>

<script>
export default {
 created () {
 console.log(this.$router)
 this.$router.push('/login') // 页面加载时跳转
 }
}
</script>

意思是加载二级路由的pages/users.vue页面

<template>
 <div style="height:100%;">
 <el-container style="height:100%">
 <el-header class="theme-bg-color">
 <my-head />
 </el-header>
 <el-container style="height:100%;">
 <my-side />
 <el-main>
 <NuxtChild :key="key"/>
 </el-main>
 </el-container>
 </el-container>
 </div>
</template>
<script>
import MySide from '~/components/MySide.vue'
import MyHead from '~/components/MyHead.vue'
export default {
 components: {
 MySide,
 MyHead
 },
 computed: {
 key() {
 return this.$route.name !== undefined? this.$route.name +new Date(): this.$route +new Date()
 }
 }
}
</script>

注意,在pages/users/index.vue页面中

export default {
 name: 'users'
}

其他页面,比如pages/users/ditch.vue页面中

export default {
 name: 'users-ditch'
}

一定要这样去写name,官网上也是这样说明的。

总结,嵌套路由(二级路由写法)

一,页面有个user.vue,文件夹也要有个同名的user;

二,最好有index.vue页面;

三,name格式。

源码地址:

https://github.com/besswang/rj-payadmin-nuxt

以上这篇Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Event学习第四章 传统的事件注册模型
Feb 07 Javascript
改变javascript函数内部this指针指向的三种方法
Apr 23 Javascript
Ext GridPanel加载完数据后进行操作示例代码
Jun 17 Javascript
jQuery实用技巧必备(上)
Nov 02 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
Nov 29 Javascript
详解Javascript中的Object对象
Feb 28 Javascript
基于JavaScript实现微信抢红包功能
Jul 20 Javascript
ES6使用export和import实现模块化的方法
Sep 10 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
微信小程序Echarts图表组件使用方法详解
Jun 25 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 Javascript
vue实现简单全选和反选功能
Sep 15 Javascript
如何利用vue实现波谱拟合详解
Nov 05 #Javascript
关于Vue中$refs的探索浅析
Nov 05 #Javascript
JavaScript 实现轮播图特效的示例
Nov 05 #Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
Nov 05 #Javascript
nuxt 每个页面head标签内容设置方式
Nov 05 #Javascript
JavaScript TAB栏切换效果的示例
Nov 05 #Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 #Javascript
You might like
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
js获取class的所有元素
2013/03/28 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
详谈ES6中的迭代器(Iterator)和生成器(Generator)
2017/07/31 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
用Python写一个无界面的2048小游戏
2016/05/24 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
在python中实现将一张图片剪切成四份的方法
2018/12/05 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
css3 pointer-events 介绍详解
2017/09/18 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
幸福家庭事迹材料
2014/02/03 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
药品业务员岗位职责
2014/04/17 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
部队2014年终工作总结
2014/11/27 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js