赞
踩
=============================================================
==============================================================
项目代码已上传,可以前往下载相关代,下载地址如下:下载地址,如果不能下载且有需要的小伙伴及时联系博主或评论留下邮箱,我看到后会第一时间发送代码;
=============================================================
本项目前台的主要技术栈使用的是:Vue3+VueX+VueRouter+Axios+TypeScript,后台主要是用的Node+TypeScript,当然本文主要讲述的是前台相关,后台部分代码有兴趣的可以留言;
============================================================
在开始码代码前简单的分析一下,理一下逻辑,同时看看有可能会涉及到哪些知识点,这样在准备阶段大致心里就有了一个底,对于重复度高的部分可以提前预计到并封装成组件,公共样式也尽量提前抽离;
主要用途是搜索,有搜索框组件和时钟组件组成,并且搜索框组件聚焦时可以看到历史记录以及热门搜索,同时聚焦时背景图上有一个放大以及毛玻璃的效果;
快捷入口的集合,打开时背景图同样有一个放大以及毛玻璃的效果;
另外,在整个项目里,使用到了lowdb来对数据进行缓存和读取(其实就是localstage),使用到了loadsh作为函数库
===============================================================
既然是基于Vue,那么开始必须是基于Vue3的脚手架搭建项目,具体命令如下:
vue create start
注意的是,在配置项目的时候需要选择安装TypeScript,以及使用到了CSS的预处理器:less,实际上我觉得Sass更符合我个人的使用习惯,但是公司的项目都是用的less,那么这里也就继续使用less作为预处理器,两者其实差不多,没什么根本性的不同;
=============================================================
感觉没有必要将每一行代码都放在博客里,那样的话感觉整篇博客都是长篇代码而且效果也不好,博客里又不能调试,要看整体代码直接下载项目就是了,还能一边看一边调试,本文主要记录一下涉及到的功能点的代码,方便理解Vue3+Typescript(由于代码写的比较早,现在回过头来看还是又一些可以优化的地方的,写的不好的地方多多见谅);
这个组件的主要目的是用来做布局,因为新的界面交付到我们开发手里时,不能直接开始写代码,肯定要写一些布局组件,用来对页面进行合理的布局,布局组件写完后,只要在对应的位置填入对应的组件就行了,这样就不用在每一个页面都写一遍布局,这样不科学也太累,一旦需求发生变化,如果每个页面都是进行布局那工作了就成倍的增加了;
布局组件部分代码如下,在本项目中这个布局组件除了用来布局,还用来做各个子组件的数据的一个交互的链接点,因为不管是快捷入口还是搜索栏组件都会对背景组件的状态产生修改,一旦状态发生变化,那么这个组件就可以用来临时做数据的中转:
<template #backgourndImage>
<base-background
:glass=“glass”
@changeGlass=“changeGlass”
:shortcuts=“shortcuts”
@changeShortcuts=“changeShortcuts”
<template #clock>
<clock-component
:glass=“glass”
:search=“searchState”
v-show=“!shortcuts”
/>
<template #search>
<search-component
@changeFocus=“changeFocus”
:glass=“glass”
v-show=“!shortcuts”
/>
<template #copyright>
<template #shortcuts>
// 组件、库、接口等引入
我们写了一个base-layout的组件用来做布局,并且在组件中预留了4个插槽,分别用来放置背景组件,主界面,快捷入口,版权信息,这样整体的结构不会凌乱,而base-layout部分代码如下:
就是做了一个布局,对每一块内容都进行圈定范围,并且预留了插槽用来内容填充;
这个组件主要的功能就是背景图的放大以及毛玻璃,这两块效果其实都是CSS实现的,JS实现的主要是在什么时机触发这个效果,在本项目中,触发的时机一共有两个:
处于首页的时候,输入框聚焦,此时的背景组件会触发放大和毛玻璃效果;
右击首页,打开快捷入口的时候,也会触发放大和毛玻璃效果;
部分代码如下:
另外,这里还有一个骨架屏的效果,就是当背景图还没有被加载的时候,整个背景图处于灰色,并且有一个从左往右的动效,代表正在加载中,骨架屏效果代码如下:
.threeS-loading {
background-color: #f2f2f2;
background: linear-gradient(
100deg,
rgba(255, 255, 255, 0) 40%,
rgba(255, 255, 255, 0.5) 50%,
rgba(255, 255, 255, 0) 60%
)
#f6f6f6;
background-size: 200% 100%;
background-position-x: 120%;
animation: 1s loading ease-in-out infinite;
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
前端最基础的就是 HTML , CSS 和 JavaScript 。
HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-8lxszPff-1712723613604)]
前端最基础的就是 HTML , CSS 和 JavaScript 。
HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。
[外链图片转存中…(img-8FPhNUyj-1712723613604)]
CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
[外链图片转存中…(img-FSjHABI2-1712723613604)]
JavaScript是用来实现网页上的特效效果。如:鼠标滑过弹出下拉菜单。或鼠标滑过表格的背景颜色改变。还有焦点新闻(新闻图片)的轮换。可以这么理解,有动画的,有交互的一般都是用JavaScript来实现的。
[外链图片转存中…(img-b7YPtIPJ-1712723613605)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-RHVjfsXR-1712723613605)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。