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 函数的执行环境和作用域链的深入解析
Nov 01 Javascript
浅谈jquery中delegate()与live()
Jun 22 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
JS实现可关闭的对联广告效果代码
Sep 14 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
原生JS实现图片轮播切换效果
Dec 15 Javascript
jQuery实现获取隐藏div高度的方法示例
Feb 09 Javascript
vue中appear的用法
Aug 17 Javascript
配置eslint规范项目代码风格
Mar 11 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
vue addRoutes路由动态加载操作
Aug 04 Javascript
JavaScript 空间坐标的使用
Aug 19 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将时间差转换为字符串提示
2011/09/07 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
javascript一些不错的函数脚本代码
2008/09/10 Javascript
JavaScript 调试器简介
2009/02/21 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
AngularJs IE Compatibility 兼容老版本IE
2016/09/01 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
Vue-router 类似Vuex实现组件化开发的示例
2017/09/15 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
python处理csv数据的方法
2015/03/11 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
Python使用gRPC传输协议教程
2018/10/16 Python
pymysql模块的使用(增删改查)详解
2019/09/09 Python
python 魔法函数实例及解析
2019/09/25 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
学徒工职责
2014/03/06 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
开业庆典活动策划方案
2014/09/21 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python