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间隔刷新的简单实例
Nov 14 Javascript
JS记录用户登录次数实现代码
Jan 15 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
Sep 17 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
jQuery实现三级联动效果
Mar 02 Javascript
jQuery UI Grid 模态框中的表格实例代码
Apr 01 jQuery
easyui简介_动力节点Java学院整理
Jul 14 Javascript
vue监听input标签的value值方法
Aug 27 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
Mar 05 Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 Javascript
vue 数据操作相关总结
Dec 17 Vue.js
jquery实现点击左右按钮切换图片
Jan 27 jQuery
如何利用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 移除数组重复元素的一点说明
2008/11/27 PHP
php中将汉字转换成拼音的函数代码
2012/09/08 PHP
php合并js请求的例子
2013/11/01 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php封装的验证码类分享
2017/02/26 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
Python性能优化技巧
2015/03/09 Python
Python版名片管理系统
2018/11/30 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
搞笑获奖感言
2014/01/30 职场文书
热情服务标语
2014/10/07 职场文书
思想工作总结范文
2015/08/12 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技