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 new 需不需要继续使用
Jul 02 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
JS函数的定义与调用方法推荐
May 12 Javascript
js定义类的几种方法(推荐)
Jun 08 Javascript
js Canvas绘制圆形时钟教程
Feb 06 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
详解vue 数组和对象渲染问题
Sep 21 Javascript
使用JavaScript破解web
Sep 28 Javascript
angularJS自定义directive之带参方法传递详解
Oct 09 Javascript
JS使用new操作符创建对象的方法分析
May 30 Javascript
JavaScript实现简单拖拽效果
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
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
javascript 表单规则集合对象
2009/07/21 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
JS中递归函数
2016/06/17 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
详解Python字符串切片
2019/05/20 Python
10款最好的Python开发编辑器
2019/07/03 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
python将图片转base64,实现前端显示
2020/01/09 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
英文版银行求职信
2013/10/09 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
管理工程专业求职信
2014/08/10 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
python文件目录操作之os模块
2021/05/08 Python
浅谈Python数学建模之固定费用问题
2021/06/23 Python