美食杰-菜谱大全

美食杰项目(七)菜谱大全 3.element ui具体样式的网址 头部:tab切换 https://element.eleme.cn/#/zh-CN/component/tabs 左侧:Collapse折叠 https://element.eleme.cn/#/zh-CN/component/collapse 加载:loading https://element.eleme.cn/#/zh-CN/component/loading 右下角 :分页 https://element.eleme.cn/#/zh-CN/component 阅读详情

一、介绍

菜谱大全通过element组件进行渲染,实现了tab切换和下拉列表效果。

 二、过程

首先导入api,在data里面创建需要用到的属性。

import {getClassify, getProperty, getMenus} from '@/service/api';

data

data() {
            return {
                classify:[],//存储tab切换的所有数据
                classifyType:'1-1',//tab切换的选中项(二级路由)
                classifyName:'1',//定义刷新tab的值(一级路由)
                // 属性
                properties:[],//存储属性中的所有数据
                properType:{},//存储属性的分类。例如:{craft:1-4,flavor:2-2,hard:3-4,people:4-3}
                propertiesActivName:[]
            }
        },

开始实现的是菜谱分类,首先通过getClassify调用后端获取数据,使用element里面的标签页进行渲染。并且判断它路由里的query是否有classify,如果没有通过push添加,是classify值为一,具体表现为一级路由家常菜谱,二级路由选中家常菜。在最外层通过v-model绑定classifyName同步当前的一级路由。通过遍历获取到的数据classify渲染一级路由,获取到数据item。接着通过遍历item下的list渲染二级路由,获取到数据option。在二级路由里面绑定一个动态的class,当classifyType和某个二级路由的type相等时,给他创建一个active的class,实现高亮显示:

getClassify().then(({data})=>{
                this.classify=data
                if(!this.$route.query.classify){
                    this.classifyType=this.classify[0].list[0].type
                    this.classifyName=this.classify[0].parent_type
                    this.$router.push({
                        query:{
                            classify:this.classifyType,
                            page:1
                        }
                    })
                }
            });

渲染:

<el-tabs type="border-card" v-model="classifyName">
            <el-tab-pane 
            v-for="item in classify"
            :key='item.parent_type'
            :label="item.parent_name"
            :name='item.parent_type'>
                <div class="recipe-link">
                    <router-link :to="{query:{...$route.query,classify:option.type}}"                   
                    v-for="option in item.list"
                    :key='option.type'
                    :class="{active:classifyType===option.type}">
                        {{option.name}}
                    </router-link>
                </div>
            </el-tab-pane>
        </el-tabs>

监听路由,通过this.$route.query获取到里面的classify,判断classify是否有值,若果有的话把classify赋值给classifyType。把classify[0]赋值给classifyName:

watch: {
            $route: {
                handler(){
                    const {classify}=this.$route.query
                    if(classify){
                        this.classifyType=classify
                        this.classifyName=classify[0]
                    }
                    this.ThisgetMenus()
                },
                immediate:true
            }
        },

接下来是下拉列表首先是通过getProperty调用后端获取数据,把数据赋值给properties。然后通过reduce方法把所有属性的分类赋值给properType。通过element组件渲染:

getProperty().then(({data})=>{
                this.properties=data
                const {query}=this.$route
                console.log(this.properties);
                this.properType=this.properties.reduce((o,item)=>{
                    o[item.title]=query[item.title]?query[item.title]:''
                    if(o[item.title]){
                        this.propertiesActivName.push(o[item.title][0])
                    }
                    return o
                },{})
            })

渲染:

 <h2>家常好味道,给你家一般的温暖</h2>
        <el-container>
            <el-aside width="220px" class="recipe-aside">
                <div class="filter-box">
                    <h4>筛选</h4>
                    <!-- v-model="activeName" -->
                    <!-- 筛选 start -->
                    <el-collapse v-model="propertiesActivName">
                        <el-collapse-item
                        v-for="item in properties"
                        :key='item.parent_type'
                        :title="item.parent_name"
                        :name='item.parent_type'
                        >
                            <div class="filter-tags">
                                <el-tag type="info"
                                v-for="option in item.list"
                                :key="option.type"
                                @click="selectedTag(option)"
                                :class="{'tag-selected':properType[option.title]===option.type}">{{option.name}}</el-tag>
                            </div>
                        </el-collapse-item>
                    </el-collapse>
                    <!-- 筛选 end -->
                </div>
            </el-aside>

给属性绑定一个点击事件selectedTag,并把遍历得到的数据option当做实参传递。判断属性是否点击过,如果点击过取消高亮显示,没有电击过,添加高亮显示。

selectedTag(option){
               let query={...this.$route.query}
            // 判断是否点击,如果点击过,取消、否则选中
               if(this.properType[option.title]==option.type){
                   this.properType[option.title]=''
                   delete query[option.title]
               }else{
                   this.properType[option.title]=option.type
                   query[option.title]=option.type
               }
               
               this.$router.push({
                   query
               })
            },

总结:

到这里就介绍完了,祝大家生活愉快!

美食杰----菜谱大全 今天我们来写美食杰的菜谱大全页面,首先要讲的是实现这个页面的流程: 拿到数据----渲染数据----监听路由传参----判断----写点击事件 1.在api里面拿到数据getClassify, getProperty, getMenus。 2.再创建个空数组classify存放数据,把数据赋值给data。 3.渲染数据,用v-for渲染数据。 4.在watch里深度监听路由传参。 5.再用if判断,判断是否点击,如果点击过就取消;否则,选中。 6.用@click写点击事件,点击的时候地址栏中的 阅读详情

相关推荐

美食杰项目(菜谱大全)效果介绍

1.看一下要实现的效果 1.1. 点击实现家常菜谱中华菜系 各地小吃的tab切换 1.2. 点击各个菜系实现高亮变红选中 1.3 点击工艺 口味 难度口味下的按钮 右侧的菜品会进行筛选菜品会发生变化 1.4 菜品会进行分页可以点击进行上一页下一页的切换 1.5 菜品未显示时会有一个正在加载中的蒙板 1.6 当筛选菜品不足一页将不会进行分页 2.效果显现方式 使用vue脚手架搭建项目完成...

Coding_Peasant_Y的博客 697

33、菜谱大全API接口,免费好用

菜谱大全查询API接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了6个小接口,可使用该接口制作一个菜谱小应用。查看接口完整信息:https://www.mxnzp.com/doc/detail?id=36RollToolsApi通用系列接口包含多很多免费通用的API接口,利用这些接口可以帮你实现去开发出很多功能丰富,服务稳定的小程序,APP或者网页,无论是练手还是实战都是不错的选择。所有接口的列表可以在此查看 https://www.mxnzp.com/doc/list。

roll圈圈的博客 2404

vue——超详细的美食杰项目—菜谱大全

vue——超详细的美食杰项目—菜谱大全效果介绍1.家常菜谱Tab切换:2.筛选: 效果介绍 下面我们实现的效果就是图一中的。点击‘家常菜谱’下的其中一项时背景颜色改变并向路由中显示参数。在点击‘中华小吃’时‘家常菜谱’选中的将会失效。是一个类似Tab切换的效果。 还有就是我们的筛选一项,点击‘工艺’的其中一项,再点‘口味’和‘难度’中的选项时,所有被点击的选项背景样式并不会消失并且路由中也有被点击的参数。 这些路由参数是被点击选项时所对应的参数 以下步骤都是在recipe.vue组件中实现 1.家常菜

weixin_51962708的博客 1059

食谱菜谱大全API接口

食谱菜谱大全API接口

qq_48896417的博客 3832

食谱API

食谱API

Ubuntu18.04黑屏救急指南:从tty到图形界面的5种恢复方法(附网络配置技巧)

本文针对Ubuntu 18.04系统启动后出现黑屏并进入tty命令行的问题,提供了一套从紧急诊断到完全恢复图形化界面的系统性实战指南。文章详细讲解了五种核心恢复方法,包括重启显示管理器、重装ubuntu-desktop桌面环境、手动安装Xorg与LightDM等,并重点解决了纯命令行环境下的网络配置难题,帮助用户快速修复系统,恢复工作环境。

weixin_29243279的博客 359

基于微信公众平台API的菜谱小程序 的设计与实现

摘 要由于人们生活水平的不断提高,人们对网络的需求也是不断提高,但是又不想通过下载各种不常用的app增加手机内存。小程序正好就可以做到这个特点,不用下载、及实际用、用完就走,现在很多的行业兴起,尤其餐饮行业最为突出,不用再通过直接排队点餐,通过小程序就可以坐在自己的座位上点餐。因此,介于小程序的方便性和实用性及安全性,我设计的菜谱小程序是为了用户更加方便的学习和制作菜品以及分享关于菜品的信息,方便各位在家的宝妈宝爸们可以在厨房大展身手,以及喜欢做菜和喜欢分享用户们提供一个便捷的平台。 本平台运用了微信

小宝的博客 4805

51单片机也能玩转信号发生器?手把手教你用DAC0832和LM358输出四种标准波形

本文详细介绍了如何使用51单片机和DAC0832芯片搭配LM358运放,自制低成本信号发生器,实现正弦波、矩形波、三角波和锯齿波四种标准波形的输出。从硬件选型、电路设计到编程实现,手把手教你完成这一实用电子项目,总成本不到50元,适合电子爱好者和学生实践。

weixin_30530939的博客 553

菜谱,美食大全接口

厨艺,生活,美食,菜谱,做饭。

showapi的博客 943

LabVIEW事件结构避坑指南:为什么你的‘确定按钮’事件有时会失灵?

本文深入探讨了LabVIEW事件结构中'确定按钮'事件失灵的常见原因及解决方案。从事件队列机制到事件类型选择,详细分析了事件丢失的五大原因,包括事件处理耗时过长、事件类型选择不当等,并提供了优化登录界面案例的实用建议。掌握这些技巧可显著提升LabVIEW用户界面的响应可靠性。

weixin_42548888的博客 355

基于PlatformIO与CMSIS的STM32库函数开发实战:从环境搭建到外设驱动

本文详细介绍了基于PlatformIO与CMSIS的STM32库函数开发实战,从环境搭建到外设驱动实现。通过对比传统IDE,PlatformIO结合CMSIS框架在跨平台开发、代码可移植性和调试体验上更具优势。文章包含PlatformIO.ini配置详解、GPIO/USART驱动开发实例及常见问题解决方案,帮助开发者高效完成STM32项目开发。

weixin_29190169的博客 424

菜谱大全API,返回各种菜系的介绍和做法

介绍:输入相关菜名关键词,返回该品类菜的做法 可用于美食类app,公众号数据接入 说明文档:https://www.xiaocongjisuan.com/show/api/60 接口返回数据如下: 返回数据包括,菜品名字、菜品介绍、菜品标签、步骤说明、步骤图片等 { "data": { "result": [{ "title": "爱心型炸猪排", "score": "0.0",...

zhangps的博客 4404

别再让COGI拖慢你的SAP接口!手把手教你配置BAPI_PRODORDCONF_CREATE_TT的同步货物移动

本文深入解析SAP生产订单报工接口中的COGI问题,通过BAPI_PRODORDCONF_CREATE_TT的同步配置实战,解决异步更新导致的性能瓶颈。文章详细介绍了增强点配置和性能验证,帮助用户彻底消除COGI堆积,提升接口效率。

weixin_29214691的博客 482

美食杰项目 -- 菜谱大全(二)

本文给大家讲解,美食杰项目中菜谱大全实现的效果,和具体代码。 具体实现思路: 1. 点击头部分类(一级路由),点击哪一个选中哪一个(二级路由)的第一个 2. 点击左侧属性,如果(二级路由),选中则刷新时(一级路由)默认打开 3. 根据前2两步的条件进行过滤,在右侧显示过滤后的内容 4. 添加分页器效果 5. 以上效果都可以使用 element-ui 实现

weixin_62897746的博客 888

CTF实战:从ECDSA签名漏洞到flag获取

本文详细解析了ECDSA签名算法在CTF比赛中的实战应用,重点探讨了随机数重用和参数泄露等常见漏洞。通过PWNHUB六月赛的例题,展示了如何从签名数据中恢复私钥并获取flag,同时提供了防御措施和实战技巧,帮助参赛者提升解题能力。

weixin_42706667的博客 278

Windows Server 2012评估版过期自动关机问题:两种高效解决方案详解

本文针对Windows Server 2012评估版过期导致的自动关机问题,提供了两种高效解决方案。一是通过slmgr.vbs命令重置授权,临时延长评估期;二是使用DISM工具将评估版转换为正式版,一劳永逸。文章详细解析了两种方法的操作步骤、注意事项及适用场景,帮助用户快速恢复服务器稳定运行。

pytorchlight8的博客 1197

vue项目美食杰菜谱大全实现(二)

接上篇,vue项目美食杰菜谱大全实现 效果图 分析: 整体分为三大部分 1.先实现菜谱分类头部实现 (1)先实现家常菜谱中华菜系和各地小吃的实现,通过后端获取到数据,渲染页面 (2)再实现第一部中的每一项,获取数据渲染页面,实现局部功能 2.实现左边筛选中的功能 (1)先实现工艺,口味,难度,人数,通过后端获取到数据,渲染页面 (2)实现第一步中包含的每一项,获取数据渲染页面,实现局部功能 3.实现右边菜谱内容 (1)通过后端拿到数据渲染页面 (2)通

zhao_li_ming的博客 921

6层高速PCB设计实战:BGA布局与阻抗匹配关键解析

本文深入解析6层高速PCB设计中BGA布局与阻抗匹配的关键技术。通过实战经验分享,详细介绍了六层PCB层叠结构的选择与优化、BGA器件布局技巧、阻抗匹配的实战经验以及高速布线技巧,帮助工程师提升PCB设计水平,确保信号完整性和电源完整性。

weixin_28481133的博客 369

vue项目美食杰菜谱大全实现(三)

接上篇,vue项目美食杰菜谱大全已经实现,今天来说一下菜单详情的实现 分析: 这个菜单详情页面,考验的知识很少,基本都是拿数据渲染 分为4大部分,四个组件: 1.detail: detail组价: 根据menuld请求数据(查看数据结构),渲染页面(如果没有menuld,提示框请登录) 注意事项:数据结构过多,在保存到组件中,提前写好默认值。避免...

zhao_li_ming的博客 766

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

vue项目美食杰菜谱大全实现

效果图 分析 1.先实现菜谱分类头部实现 (1)先实现家常菜谱中华菜系和各地小吃的实现 (2)再实现第一部中的每一项 2.实现左边筛选中的功能 (1)先实现工艺,口味,难度,人数 (2)实现第一步中包含的每一项 按照步骤来实现 通过后端api提供的getClassify()的方法然后通过.then()方法来异步获取数据 获取数据创建一个空的盒子classify:[ ],数组储存数据 然后渲染数据到...

zhao_li_ming的博客 672

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

美食杰项目----菜谱大全

美食杰项目----菜谱大全 实现效果介绍: 点击菜谱tab切换,类似于一个二级菜单 当他点击家常菜切换颜色,当它刷新的时候颜色不会掉 点击工艺,口味切换,也类似于一个二级菜单 当点击“炒”“蒸”时切换颜色,当它刷新的时候颜色不会掉和展开 效果图1.2 效果图3.4 代码展示如下: data中存放的数据 classify:[],//存储tab切换的所有数据 classifyType:‘1-1’,//tab切换选中项(二级路由) classifyName:‘1’,//定义刷新tab得值(一级路由) /

wzstd的博客 316

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

美食杰项目--菜谱大全二

实现效果展示: 点击“炒”,“蒸”等让数据显示出来 每次显示5条数据 数据比较多的时候分页的效果,默认显示5条数据 效果图展示 当他点击加载loading时,出现遮罩层的效果 1.显示数据

wzstd的博客 264

美食杰—菜谱大全

思路: 首先我们定义一个空数组,然后我们到api里把数据请求到这个空数组中,在模板中把数组遍历渲染到页面上,第一个数组里面还有一个数组(list)我们可以看做一个二级路由,然后把这个list遍历出来我们动态绑定动态的把数据储存到路由中,然后筛选部分同样是把数据渲染到页面中,筛选这个属性中的说有数据,第二层路由为属性的分类,然后我们给第二层路由添加一个点击事件,如果选中就赋值,如果没选中就默认选中第一个,然后动态绑定class点击添加颜色,最后我们为了提高用户的体验度我们可以设置一个空的数组把每一个点击过的

ply6686的博客 327

静态网页设计——美食杰官网(HTML+CSS+JavaScript)

声明:该文章只是做技术分享,若侵权请联系我删除。!!使用技术:HTML+CSS+JS 主要内容:仿照美食杰官网首页用html标签分割成多个区域,使用css设置样式,精准的分割页面格式化。 使用js实现的动态切换的轮播图,点击下方按钮可以手动切换。 代码: 2、菜谱大全 HTML+CSS将页面分割为多张图片卡片。 代码: 3、菜谱视频 点击某个菜谱卡片,能够观看vedio标签实现的视频。

爱吃雪糕的小布丁的博客 1095

美食杰-菜谱大全(右侧主体)

一、介绍 上一篇我一节介绍过菜谱大全里面的tab切换和下拉列表了,这一次我就向大家介绍菜谱大全里的右侧主体,右侧主体包含显示数据和分页器 二、过程 首先需要获取到显示的数据,需要在监听路由里面调用方法ThisgetMenus,在ThisgetMenus通过getMenus调用api向后端请求数据。在获取数据是需要按照要求传递参数,首先获取的路由下的query赋值给创建的变量query,然后创建一个params对象,里面的page属性值是变量query下的page,如果没有的话是1,里面的clas.

as_long_的博客 234
上一篇: 美食杰-个人空间
下一篇: 美食杰-菜谱大全(右侧主体)
as_long_
博客等级 码龄5年 2粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值