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 相关文章推荐
关于js获取radio和select的属性并控制的代码
May 12 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
Nov 29 Javascript
javascript中加var和不加var的区别 你真的懂吗
Jan 06 Javascript
三分钟带你玩转jQuery.noConflict()
Feb 15 Javascript
jQuery简单注册和禁用全局事件的方法
Jul 25 Javascript
AngularJS入门教程之数据绑定原理详解
Nov 02 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
Mar 14 Javascript
Javascript实现登录记住用户名和密码功能
Mar 22 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
无限循环轮播图之运动框架(原生JS实现)
Oct 01 Javascript
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
layui layer select 选择被遮挡的解决方法
Sep 21 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
php文件上传的例子及参数详解
2013/12/12 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
JS 自定义函数缺省值的设置方法
2010/05/05 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
Python遍历目录中的所有文件的方法
2016/07/08 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
Python 修改列表中的元素方法
2018/06/26 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
python SVM 线性分类模型的实现
2019/07/19 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
采购部部长岗位职责
2014/02/06 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
企业安全生产责任书范本
2014/07/28 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
小学教师岗位职责
2015/04/02 职场文书
2015国庆节宣传语
2015/07/14 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript
JUnit5常用注解的使用
2021/07/02 Java/Android
vscode中使用npm安装babel的方法
2021/08/02 Javascript