【前端】Vue项目:旅游App-(20)home:点击跳转至带参数的动态路由

news2024/9/21 1:45:49

文章目录

    • 目标
    • 过程与代码
      • 详情页detail
      • home中设置点击跳转
    • 效果
    • 总代码
      • 修改或添加的文件
      • router/index
      • detail
      • home-content
    • 参考

本项目博客总结:【前端】Vue项目:旅游App-博客总结

目标

点击热门精选的item跳转至对应详情页:

在这里插入图片描述

详情页:

在这里插入图片描述
路由的跳转是动态的、带参数的:

在这里插入图片描述

过程与代码

详情页detail

随便显示些什么:

<template>
    <div class="detail">
        <h2>detail</h2>
    </div>
</template>

<script setup>

</script>

<style lang="less" scoped>

</style>

路由配置:

{
    // 参数名为id
    path: '/detail/:id',
    component: () => import("@/views/detail/detail.vue")
}

home中设置点击跳转

html:

<template v-for="(item, index) in houseList" :key="item.data.houseId">
    <houseItemV9 v-if="item.discoveryContentType === 9" :item="item.data"
        @click="itemClick(item.data.houseId)"></houseItemV9>
    <houseItemV3 v-else-if="item.discoveryContentType === 3" :item="item.data"
        @click="itemClick(item.data.houseId)"></houseItemV3>
</template>

在这里插入图片描述
js:

const router = useRouter()
function itemClick(id) {
    router.push('/detail/' + id)
}

detail的显示:

<div class="detail">
    <h2>detail {{ $route.params.id }}</h2>
</div>

效果

在这里插入图片描述
对应url:

在这里插入图片描述

总代码

修改或添加的文件

在这里插入图片描述

router/index

配置detail页面的路由。

import { createRouter, createWebHashHistory } from 'vue-router'

const router = createRouter({
    history: createWebHashHistory(),
    routes: [
        {
            path: '/',
            redirect: '/home' //重定向到home
        },
        {
            path: '/home',
            component: () => import("@/views/home/home.vue")
        },
        {
            path: '/favor',
            component: () => import("@/views/favor/favor.vue")
        },
        {
            path: '/order',
            component: () => import("@/views/order/order.vue")
        },
        {
            path: '/message',
            component: () => import("@/views/message/message.vue")
        },
        {
            path: '/city',
            component: () => import("@/views/city/city.vue")
        },
        {
            path: '/search',
            component: () => import("@/views/search/search.vue"),
            meta: {
                hideTabBar: true
            }
        },
        {
            // 参数名为id
            path: '/detail/:id',
            component: () => import("@/views/detail/detail.vue")
        },
    ]
})

export default router

detail

detail页面的粗略显示。

<template>
    <div class="detail">
        <h2>detail {{ $route.params.id }}</h2>
    </div>
</template>

<script setup>

</script>

<style lang="less" scoped>

</style>

home-content

添加点击跳转事件。

<template>
    <div class="content">
        <h2>热门精选</h2>

        <div class="list">
            <template v-for="(item, index) in houseList" :key="item.data.houseId">
                <houseItemV9 v-if="item.discoveryContentType === 9" :item="item.data"
                    @click="itemClick(item.data.houseId)"></houseItemV9>
                <houseItemV3 v-else-if="item.discoveryContentType === 3" :item="item.data"
                    @click="itemClick(item.data.houseId)"></houseItemV3>
            </template>
        </div>
    </div>
</template>

<script setup>
import { storeToRefs } from "pinia";
import useHomeStore from "../../../store/modules/home";
import houseItemV9 from "../../../components/house-item/house-item-v9.vue";
import houseItemV3 from "../../../components/house-item/house-item-v3.vue";
import useScroll from '@/hooks/useScroll.js'
import { watch } from 'vue'
import { useRouter } from "vue-router";

const homeStore = useHomeStore()
homeStore.fetchHouseList()
const { houseList } = storeToRefs(homeStore)
// console.log(houseList)

const { isReachBottom } = useScroll()
watch(isReachBottom, (newValue) => {
    if (newValue) {
        homeStore.fetchHouseList().then(() => {
            isReachBottom.value = false
        })
    }
})

const router = useRouter()
function itemClick(id) {
    router.push('/detail/' + id)
}

</script>

<style lang="less" scoped>
.content {
    padding: 0 20px;

    h2 {
        font-size: 20px;
        font-weight: 700;
    }

    .list {
        margin-top: 20px;
        display: flex;
        flex-wrap: wrap;
    }
}
</style>

参考

3.vue-router之什么是动态路由 - 知乎 (zhihu.com)

带参数的动态路由匹配 | Vue Router (vuejs.org)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/196911.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是HTTPDNS?HTTPDNS有哪些作用?

近几年来&#xff0c;HTTPDNS技术大火&#xff0c;很多大的网站都开始部署自己的HTTDNS服务器&#xff0c;那么什么是HTTPDNS&#xff0c;HTTPDNS和传统的DNS技术相比有哪些区别&#xff1f;HTTPDNS又有哪些作用呢&#xff1f;针对这些问题&#xff0c;本文中科三方做下简单介绍…

【学习】Linux 系统 文件权限表示

学习内容描述&#xff1a;Linux 系统 文件权限格式 重点知识&#xff1a; Linux 系统 文件权限格式是10位&#xff0c;格式例如&#xff1a;-rw-rw-rw-&#xff0c;表示文件所有者、所属组、其他用户都具有读和写的权限 。 &#xff08;1&#xff09;第0位确定文件类型 其中: …

计算机组成原理 第三章笔记

视频网址 仅仅是笔记记录&#xff0c;若有错误请指出。 零碎的 存储器的分类 磁表面存储器:磁盘,磁带磁芯存储器半导体存储器 RAM ROM光存储器 看下面这个思维导图 存储器的性能指标 存储容量&#xff1a;存储字数字长单位成本: 每位价格总成本/总容量存储速度&#xff1a;数…

Android Studio Linux系统模拟器启动异常

一、报错&#xff1a;/dev/kvm device permission denied 1、首先检查/dec/kvm的所属关系 命令&#xff1a;ls -al /dev/kvm 可以看到&#xff0c;属于root用户&#xff0c;组也是root用户 2、查看当前用户是否在root组 命令&#xff1a;grep root /etc/group 显然是没有的…

C语言学习笔记-数组

C 数组 C 语言支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量&#xff0c;比如 runoob0、runoob1、…、runoob99&#x…

Project3:Ants Vs. SomeBees

Ants Vs. SomeBees1. 前言2. Phase 1&#xff1a;Basic gameplay3. Phase 2&#xff1a;More Ants&#xff01;4. Phase 3: Water and Might5. 测试结果1. 前言 本项目是 CS 61A 的第三个项目&#xff0c;要求是实现一个类似于植物大战僵尸的游戏&#xff0c;这里 Ants 就相当…

【redis】redis的过期策略以及内存淘汰机制

前言 今天我们讨论下redis的过期策略以及内存淘汰机制&#xff0c;如果你想要考察一个人对redis的了解&#xff0c;那吗这个问题是必选的&#xff0c;从他对这个问题的回答中&#xff0c;就可以了解到他的redis深浅。 过期策略 先来介绍下&#xff0c;Redis key 过期删除的策…

虹科产品 | 使用Redis企业版数据库为MySQL增添魅力!

MySQL读取数据慢&#xff1f; 难以轻松扩展&#xff1f; 数据搜索效率低&#xff1f; 无法实时分发数据集&#xff1f; 虹科Redis企业版数据库解决方案来了&#xff01;企业将Redis企业版数据库与MySQL一起使用&#xff0c;可以实现企业缓存或复制数据库&#xff0c;从而使应用…

MATLAB 非线性规划

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

uniapp APP分享;判断用户是否安装APP,已安装直接打开,未安装跳转下载页;uniapp 在外部打开APP(schemes)

场景&#xff1a; A将某商品分享给B&#xff0c;B点击后判断是否安装APP&#xff0c;若安装直接打开&#xff0c;没有安装则跳转下载页&#xff1b; 知识点&#xff1a; uniapp APP分享&#xff1b;判断用户是否安装APP&#xff0c;已安装直接打开&#xff0c;未安装跳转下载…

从零开始的数模(十一)微分方程建模

目录 一、概念 1.1什么是微分方程建模 1.2使用场合 二、基于python的微分方程建模 2.1scipy.integrate.odeint() 函数 ​编辑2.2案例 ​编辑 三、基于MATLAB的微分方程建模 四、偏微分方程的求解 一、概念 1.1什么是微分方程建模 微分方程建模是数学模型的重要方法&am…

AcWing 1081. 度的数量(数位DP)

AcWing 1081. 度的数量&#xff08;数位DP&#xff09;一、问题二 、数位DP三、解析1、题意理解2、题目分析三、代码一、问题 二 、数位DP 这道题是一道数位DP的题目&#xff0c;其实数位DP更像我们在高中阶段学过的排列组合问题中的分类讨论。 数位DP顾名思义就是按照数字的…

B/S端界面控件DevExtreme v22.2新功能 - 如何在日历中显示周数?

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合&#xff0c;使您可以利用现代Web开发堆栈&#xff08;包括React&#xff0c;Angular&#xff0c;ASP.NET Core&#xff0c;jQuery&#xff0c;Knockout等&#xff09;构建交互式的Web应用程序&#xff0c;该套件附带功能齐…

LeetCode-1145. 二叉树着色游戏【深度优先搜索,二叉树】

LeetCode-1145. 二叉树着色游戏【深度优先搜索&#xff0c;二叉树】题目描述&#xff1a;解题思路一&#xff1a;深度优先搜索分别计算x的左子树lsz和右子树rsz的节点个数。那么除去x与其左右子树的父子树的节点个数为n-1-lsz-rsz。贪心的&#xff0c;那么二号玩家其实可以占据…

Java基础学习笔记(十八)—— 转换流、对象操作流

转换流、对象操作流1 转换流1.1 构造方法1.2 指定编码读写2 对象操作流2.1 对象操作流概述2.2 对象序列化流2.3 对象反序列化流2.4 案例1 转换流 1.1 构造方法 转换流就是来进行字节流和字符流之间转换的 InputStreamReader&#xff1a;是从字节流到字符流的桥梁&#xff0c;…

Linux(八)线程概念

1、线程的本质 线程就是一个进程内部的控制序列 是CPU进行执行调度的基本单元。&#xff08;调度一段代码的执行是通过线程完成的&#xff09; 一个进程中至少有一个线程&#xff08;所以进程与线程的数量关系是 一对一 或 一对多&#xff09; 2、为什么把线程称为LWP LWP…

数学建模之熵权法(SPSSPRO与MATLAB)

数学建模之熵权法&#xff08;SPSSPRO与MATLAB&#xff09;一、基本原理对于某项指标&#xff0c;可以用熵值来判断某个指标的离散程度&#xff0c;其信息熵值越小&#xff0c;指标的离散程度越大(表明指标值得变异程度越大&#xff0c;提供的信息量越多)&#xff0c;该指标对综…

Maxout 激活函数与 Max-Feature-Map (MFM)

前言 最近在读 A Light CNN for Deep Face Representation With Noisy Labels 提到 maxout 激活函数&#xff0c;虽然很好理解&#xff0c;激活的时候选取最大值即可&#xff0c;但是具体细节看了看相关的资料反倒混淆了。参考了一个相关的视频&#xff0c;大致屡清楚为什么说…

技术周 | qemu网络收发包流程

通常我们使用qemu创建虚拟机时&#xff0c;会使用下面的选项指定虚拟网卡设备的类型&#xff0c;以及桥接、tap设备参数等&#xff0c;如下&#xff1a; -device选项用于给虚拟机分配虚拟设备&#xff0c;如磁盘设备、网卡设备等 -netdev选项用于配置虚拟设备的后端&#xff0…

MACD底背离选股公式以及技术指标公式

今天介绍MACD底背离选股公式&#xff0c;整体来说编写难度比较大&#xff0c;按照MACD底背离的定义&#xff0c;需要分别找到2个价格波段低点以及快线DIF的2个低点&#xff0c;并进行比较&#xff0c;最终实现选股。 一、MACD底背离选股公式&#xff08;平替版&#xff09; 首先…