编程式导航

本文介绍了如何在Vue应用中实现主页面的轮播图和二级导航,以及子页面的列表展示和点击事件触发路由跳转到详情页的过程。展示了使用axios获取数据和Vue Router进行导航的实践。

主页面

<template>
    <div>
        films页面,主页面
        <div style="height:100px;background:yellow;">轮播图</div>
        <div>二级声明式导航</div>
        <!-- router-view相当于给孩子页面占得位置,通过这个组件,孩子页面触发的时候,孩子页面的内容将会显示出来 -->
        <router-view></router-view>
    </div>
</template>

子页面

<template>
    <div>
        nowPlack列表页  films的子页面,
        <ul>
            <li v-for="(item,id) in List" :key="id" @click="handClickPage()">
                <img :src="item.url" alt="">
                {{item.name}}
                <!-- 列表跳详情,声明式写法,需要传参给to前面加上冒号  但是长列表一般不适用-->
                <!-- <router-link to="/detal">{{item.usename}}</router-link> -->
            </li>
        </ul>
    </div>
</template>
<script>
import axios from 'axios'
export default {
    data(){
        return{
           List:[] 
        }
    },
    mounted(){
        //https://m.maizuo.com
        axios.get('http://rap2api.taobao.org/app/mock/279550/http/get')
           .then(res=>{
            console.log('rap2数据',res.data.data[0].list)
            this.List = res.data.data[0].list
            console.log('list数据',this.List)
        })
    },
    methods:{
        handClickPage(){
            //编程式导航 1
            // location.href = '#/detal'
            //编程式导航 2    可以避免忘写 #
            this.$router.push('/detal')
        }
    }
}
</script>

记得创建一个详情页
我这里是相当于nowPlack子页面是展示列表的
我给列表每一项li绑定了一个click事件,当点击li的时候,就会触发这个事件
this.$router.push(‘/detal’) 触发这个事件后跳转到了详情页detal

当然可以! ### Nuxt.js 编程式导航 在 Nuxt.js 中,编程式导航允许你在 JavaScript 代码中动态地改变路由,而不是通过点击链接等用户交互触发的方式。这种方式非常适合用于条件跳转、登录验证后的页面重定向、错误处理等情况。 #### 使用 `$router` 进行编程式导航 Nuxt.js 内置了 Vue Router 的功能,因此你可以直接使用 `$router` 对象来进行编程式的路由操作。常见的几种方式包括: 1. **push**: 导航到一个新的 URL,并将此记录添加到浏览器的历史栈中。 ```javascript this.$router.push('/about') ``` 2. **replace**: 类似于 `push`,但它不会向历史记录添加新条目,而是替换当前的 history 记录。 ```javascript this.$router.replace('/contact') ``` 3. **go**: 实现前进或后退指定步数的功能,类似于浏览器的“前进”、“后退”按钮。 ```javascript this.$router.go(-1) // 后退一页 this.$router.go(1) // 前进一页 ``` 4. **back** 和 **forward**: 分别对应浏览器的“返回”和“前进”的行为。 ```javascript this.$router.back() this.$router.forward() ``` 5. **从组件内部调用**:如果你在一个Vue 组件内工作,则可以直接访问实例上的 `$router` 属性;如果是在 Vuex store 或者其他地方,需要注入 router 插件或者使用全局属性来获取路由器实例。 6. **带参数的导航**:如果你想传递查询字符串或其他路径参数,在使用 push 等方法时也可以这样做: ```javascript this.$router.push({ path: '/user', query: { id: '123' } }) ``` 7. **命名视图的切换**:当应用中有多个嵌套视图时,还可以利用命名视图特性进行更精确的位置转移。 --- 以上就是关于如何在 Nuxt.js 应用中实现编程式导航的一些基础知识点啦!希望对你有所帮助~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值