【项目_02】隐藏tabbar、对城市数据进行获取、处理、渲染到页面上、城市回显 | 基于Vue3全家桶

news2024/11/25 13:30:33

💭💭

✨:隐藏tabbar、对城市数据进行获取、处理、渲染到页面上 | 旅途拾景

💟:东非不开森的主页

💜: 怎么会没有遗憾呢,一直向前就对了💜💜

🌸: 如有错误或不足之处,希望可以指正,非常感谢😉

旅途拾景

    • 一、点击图标跳转城市页面
      • 1.1.跳转页面隐藏底部tabbar
      • 1.2.点击图标跳转页面
      • 1.3.配置搜索框
      • 1.3.tab标签页搭建
    • 二、获取数据
      • 2.1封装网络请求
      • 2.2.请求对应数据
    • 三、对数据处理使用
      • 3.1.直接使用
      • 3.2.动态使用
      • 3.3.通过store,在store获取数据
    • 四、处理数据
      • 4.1.处理绑定index变为key
      • 4.2.根据key来获取相应的数据
        • 4.2.1.直接获取
        • 2.2.2.将数据进行解构,再处理渲染
      • 4.2.3.总结
    • 五、对数据进行页面渲染
      • 5.1.列表数据渲染
      • 5.2.热门数据渲染
      • 5.3.切换数据优化
      • 5.4.左边索引正确显示
    • 六、选择城市回退和回显

一、点击图标跳转城市页面

1.1.跳转页面隐藏底部tabbar


建立一个页面,将页面配置到路由里面,在meta里面设置一下开关,

官方这样解释meta
有时,你可能希望将任意信息附加到路由上,如过渡名称、谁可以访问路由等。这些事情可以通过接收属性对象的meta属性来实现,并且它可以在路由地址和导航守卫上都被访问到。

说白了就是通过meta对象中的一些属性来判断当前路由是否需要进一步处理,如果需要处理,按照自己想要的效果进行处理即可

在这里插入图片描述
在这里插入图片描述

这样跳转的时候就不会有tabbar了

1.2.点击图标跳转页面

  • 绑定click事件
  • 再用useRouter进行跳转路由

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这样就可以跳转了

1.3.配置搜索框

  • 用vant组件库
  • 记得引用
  • 点击事件等自行设置
  • 搜索图标(修改第三方组件库,1.全局修改 2.deep,这里我用的是全局,我们可以在组件库找到这个样式,调试也可以找到)

在这里插入图片描述
在这里插入图片描述
common.css
在这里插入图片描述
这样就可以啦

1.3.tab标签页搭建

  • vant组件库,记得引入
  • 修改下标横线颜色(这里采用的是deep)

在这里插入图片描述
在这里插入图片描述

预览效果如下:
请添加图片描述

二、获取数据

2.1封装网络请求


先安装axios

npm install axios

request下面的index.js

axios二次封装

import axios from 'axios'

import { BASE_URL, TIMEOUT } from './config'

class KKRequest {
    constructor(baseURL, timeout=10000) {
        this.instance = axios.create ({
            baseURL,
            timeout
        })
    }

    request(config) {
        return new Promise((resolve, reject) => {
            this.instance.request(config).then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err)
            })
        })
    }

    get(config) {
        return this.request({...config, method: "get"})
    }
    post(config) {
        return this.request({ ...config, method: "post" })
    }
}

export default new KKRequest(BASE_URL, TIMEOUT)


request下面的config.js

配置时间,ip地址

2.2.请求对应数据


在这里插入图片描述
下面在对应的文件中导入就可以直接用了

三、对数据处理使用

3.1.直接使用

在vue3中我们需要把拿到的数据变成响应式的,需要用ref

  • 获取数据值需要加上.value
  • ref里面默认的值是undefined
  • 所以直接在上面获取值的话需要判断是否有值?.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.动态使用

第二种。推荐

v-for遍历
这种获取的数据是动态的,如果服务器返回的数据有变化,那么这边也不会有影响
在这里插入图片描述

3.3.通过store,在store获取数据

Pinia本质上依然是一个状态管理的库,用于跨组件、页面进行状态共享
Store 是使用 defineStore() 定义的

在这里插入图片描述

引入
在这里插入图片描述

调用store中的数据

注意Store获取到后不能被解构,那么会失去响应式:
 为了从 Store 中提取属性同时保持其响应式,您需要使用storeToRefs()
在这里插入图片描述
这样就可以啦

四、处理数据

4.1.处理绑定index变为key

在这里插入图片描述
这个tabActive默认绑定的是索引,

在这里插入图片描述
在这里插入图片描述

而我们想要它绑定key,这样才能动态去切换国内和海外数据
在这里插入图片描述

然后在vant官方文档发现了用那么可以作为匹配的标识符

在这里插入图片描述

索引我们就可以用name绑定key

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

这样就成功的绑定key了

然后我们就可以去动态切换获取数据了

4.2.根据key来获取相应的数据

4.2.1.直接获取

我们应该先分析数据,看一下自己需要什么数据,再考虑一下,怎样拿到数据
在这里插入图片描述
我们要拿到的是cityGroup下的cities
在这里插入图片描述

在这里插入图片描述

2.2.2.将数据进行解构,再处理渲染


默认直接获取的数据不是响应式的,所以我们要包裹computed
在这里插入图片描述
在这里插入图片描述

4.2.3.总结


我们的目的就是为了拿到数据,因为这个数据是分标签的,所以我们就要获取选中标签后的数据

  1. 获取正确的可以,v-model绑定的要正确绑定
  2. 根据key从allcities获取数据,默认直接获取的数据不是响应式的,所以我们要包裹computed
  3. ?.是因为用ref将数据转换成响应式,默认是undefined,所以我们需要判断是否有值

computed官网解释

在这里插入图片描述

五、对数据进行页面渲染

5.1.列表数据渲染


这里使用vant库组件
并且把这部分内容放在一个组件里面
用defineProps进行传值

defineProps:
用于组件通信中父级组件给子级组件传值,其用来声明props,其接收值为props选项相同的值

在这里插入图片描述
在这里插入图片描述

5.2.热门数据渲染

在这里插入图片描述

5.3.切换数据优化


频繁切换,国内和海外城市索引量很大,如果国内和海外进行切换,那么意味中,重新进行两次for循环(最外面一次遍历索引,里面遍历城市)),重新进行渲染。
这样渲染的效率就会低。

方法
考虑使用v-show(v-if还是会重新渲染)
v-show控制仅当切换的索引等于key的时候,才进行
不然就为display:none
在这里插入图片描述

5.4.左边索引正确显示


我们加了热门以后,会发现数据和左边对不上,这是因为vant库提供的是默认的,并没有跟我们的数据相关,所以我们可以用map遍历一下数据,动态显示
在这里插入图片描述

这里使用计算属性computed,并且用props进行传值,因为这里我们需要用groupData
unshift:在最前面加上某一个值等
在这里插入图片描述

六、选择城市回退和回显

  • 绑定点击事件,点击城市回到主页面
  • 所以要用到userRouter()
  • 我们需要把点击的那个城市在主页面正确显示
  • 这里可以用pinia数据共享(第一次感受到数据共享的魅力嘿嘿)
  • 在主页面通过store进行数据渲染,到页面
  • 注意需要用storeToRefs()将数据转换为响应式的哦

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

考 PMP 证书真有用吗?

有用还是有用的,但是毕竟是一纸证书,本身的作用有限,还是要看就业环境看行业对 PMP 证书的重视程度,目前来说,pmp 在行业还是吃香的。 ​ 一、PMP 证书的市场需求 1、行业认可度高,市场需求大 PMP 是由…

【附源码】计算机毕业设计JAVA郑工社团交流服务信息平台

【附源码】计算机毕业设计JAVA郑工社团交流服务信息平台 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: …

2009(408)数据结构有关链表代码题

算法思想 第一种(普通算法):遍历链表,输出链表的长度,比较链表长度与k的关系,若长度小于k则失败,返回数值0。如果长度大于k,将指针移动到第倒数第k个位置,输出data的值,…

个性化邮箱:wodMailbox ActiveX 组件-PJ

wodMailbox ActiveX 组件 邮箱 ActiveX 组件(MIME BASE64、BINHEX、UUDECODE、QUOTED-PRINTABLE 解码) ...提供对邮箱和消息解析的完整 MIME 管理。您可以轻松地访问邮箱、计数消息、检查消息、计数部分、保存附件、查看标题、删除消息等。当wodMailBox打…

iOS证书和描述文件申请详情步骤

因为之前在iOS开发这条道路上吃了很多不必要的亏,特此想把自己的经验分享给大家,对于初学者来讲不是上架App Store购买一个黑苹果是不划算的,简单的内测或者玩玩完全是浪费钱啊(有钱可忽略),特此介绍一个小…

重读经典论文: Mean Value Coordinates for Closed Triangular Meshes

Mean Value Coordinates for Closed Triangular Meshes 发表于ACM SIGGRAPH 2003, 是图形学领域的经典论文,作者是之前组里毕业的居涛,论文只有6页,这在SIGGRAPH会议中并不多见,目前引用超过700次,在插值,参…

基于模糊RBF神经网络轨迹跟踪matlab程序

基于模糊RBF神经网络轨迹跟踪matlab程序 1 模糊RBF网络 在模糊系统中,模糊集、隶属函数和模糊规则的设计是建立在经验知识基础上的。这种设计方法存在很大的主观性。将学习机制引入到模糊系统中,使模糊系统能够通过不断学习来修改与完善隶属函数和模糊规…

天宇优配|前10月工业企业利润结构优化 稳增长望再发力

11月27日,国家统计局发布了最新规划以上工业企业效益状况。受国内疫情发出多发、工业出产者出厂价格同比由涨转降等要素影响, 1~10月,规划以上工业企业赢利同比下降3%, 且降幅较上月扩展。不过,部分中下游职…

一文理解Linux的基本指令(下)(三分钟学会Linux基本指令)

前言: 衔接上一篇文章,继续总结一下Linux操作系统的指令,不会有人认为Linux系统指令只有上篇文章那么多了吧,嘿嘿小马告诉你可不止这么多,而我这篇文章总结完,也只是我们所用的比价常用的,而还有…

基于ACO蚁群算法的tsp优化问题matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 “基本原理 蚁群算法(Ant Colony Optimization,ACO)是一种基于种群寻优的启发式搜索算法,有意大利学者M.Dorigo等人于1991年首先提出。该算 法受到自然界真实蚁群集体在觅食过程中行为的启发,利用…

国密浏览器介绍与下载

国密浏览器介绍与下载密信浏览器介绍支持操作系统下载地址奇安信可信浏览器(国密开发者专版)介绍支持操作系统下载地址红莲花安全浏览器介绍支持操作系统下载地址零信浏览器介绍支持操作系统下载地址360安全浏览器介绍支持操作系统下载地址密信浏览器 介…

DocuWare 文档管理系统Intelligent Indexing(智能索引)、 Forms(表单)和连接到Outlook 功能

一、DocuWare Intelligent Indexing(智能索引)功能 没有什么能像手动输入数据那样减慢流程的速度。键入数据速度慢、容易出错且无法有效扩展。对于生产力至关重要的组织,必须自动从扫描的文档、PDF 和其他文档中捕获关键数据字段。 数据从非…

国家自然科学基金委资助项目简介

国家自然科学基金委员会根据科技发展趋势和国家战略需求设立相应的项目类型,经过不断优化调整,形成了结构合理、功能完备的资助体系。 一、面上项目 简称:面上 面上项目支持从事基础研究的科学技术人员在科学基金资助范围内自主选题&#xf…

女性气虚胃寒怎么办 六招可祛寒补气

当外部环境发生变化时,人体内的血管也会收缩或放松。然而,当血管受到刺激时,会导致过度收缩,导致血液供应不足,人体会感到寒冷。然而,对于一些气虚的女性来说,她们的身体抵抗力相对较弱&#xf…

《谷歌眼镜》新书作者:眼镜需要成为AR的载体吗?

近10年前,谷歌推出了首款AR眼镜Google Glass,尽管这款产品并没有如预期般取得成功,但它为后续AR硬件技术的发展奠定了基础。我们知道,从微软HoloLens开始,AR头显/眼镜产品更侧重于B端应用,面向C端发售的很少…

创作者基金 11 月亮点

一个月又过去了,新一期创造者基金亮点要来了。这一次是平台游戏资产和民俗生物......我们精选了 2022 年 11 月的精华部分,一起来了解下。 这 20 个新资产已在 The Sandbox 市场平台发售。 NFT 系列介绍 一起先睹为快吧! 亚马逊怪物&#xff…

企业如何轻松做好软文推广?

在互联网飞速发展的背景下,信息的传播速度是惊人的。软文营销是数字营销的一部分,涉及在线创建和共享有价值的内容以吸引、吸引和转换客户并增加网站流量。这可以包括文章、视频、图片等。软文营销是推动销售的关键因素,因为它有助于与潜在买…

进程与信号(二)

目录 一、前言 二、Starting New Processes 1、system1.c 2、Front Contents (1)Replacing a Process Image(更换进程镜像) (2)pexec.c (3)Duplicating a Process Image&…

55 - 经典问题解析四(动态内存分配虚函数继承中的强制类型转换)

---- 整理自狄泰软件唐佐林老师课程 1. 关于动态内存分配 new和malloc的区别是什么? delete和free的区别又是什么? 1.1 问题一:new和malloc的区别 1.1.1 new关键字和malloc函数的区别 new关键字是C的一部分malloc是由C库函数提供的函数ne…

哈希表题目:有效的数独

文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题:有效的数独 出处:36. 有效的数独 难度 2 级 题目描述 要求 请你判断一个 99\texttt{9} \times \texttt{9}99 的数独是否有效。只需要根据…