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模块化和命名空间管理的问题说明
Dec 06 Javascript
jquery右下角弹出提示框示例代码
Oct 08 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
Jquery 分页插件之Jquery Pagination
Aug 25 Javascript
js使用cookie记录用户名的方法
Nov 26 Javascript
简单谈谈javascript中this的隐式绑定
Feb 22 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
less简单入门(CSS 预处理语言)
Mar 08 Javascript
ES6中Set和Map用法实例详解
Mar 02 Javascript
在vue中使用echarts(折线图的demo,markline用法)
Jul 20 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
Oct 31 Javascript
关于React Native使用axios进行网络请求的方法
Aug 02 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中Enum(枚举)用法实例详解
2015/12/07 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
php将html转为图片的实现方法
2017/05/19 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
node跨域请求方法小结
2017/08/25 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
使用Python处理BAM的方法
2018/09/28 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
美国糖果店:Sugarfina
2019/02/21 全球购物
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
网络技术专业求职信
2014/02/18 职场文书
无传销社区工作方案
2014/05/13 职场文书
党员一帮一活动总结
2014/07/08 职场文书
追悼会答谢词
2015/01/05 职场文书
班主任工作总结范文
2015/08/13 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android