先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
2.1 开发卡片组件
读书笔记的每张卡片都要有标题、内容和创建日期,还要给卡片编号,并给不同编号的卡片加上不同的颜色。当鼠标移到卡片上时,出现删除按钮。
打开 Card.svelte
文件,先在 script
标签中用 JavaScript 定义几个属性变量(组件内唯一)和一个删除函数:
然后编写卡片的内容,先用一个根 div
标签括起所有的内容,然后编写标题、内容、创建时间的 div
标签。在 Svelte 中,可以直接使用尖括号来输出变量的值,使用 on:click
指令来绑定鼠标点击事件:
{title} x
在 style
标签中编写 CSS 代码,让卡片变得美美哒:
2.2 开发操作面板组件
操作面板包含两个输入框和两个按钮,用于添加卡片和导出笔记。
打开 AddCard.svelte
文件,和开发卡片一样,先编写 JavaScript,定义几个属性变量,以及 “添加” 和 “导出” 函数:
然后编写操作面板的内容,Svelte 通过 bind:value
指令实现表单数据的双向绑定:
添加
导出
最后编写 CSS 代码,让操作面板变得美美哒~ 此处使用 Flex 布局:
2.3 将组件放入主页面
开发完卡片和操作面板组件后,只需要将这些组件丢到 Svelte 模板项目默认生成的主页面 App.svelte
中,在 script
标签中通过 import
关键字引入组件:
在 div 标签中,通过 {# each ... } {/each}
循环语句实现卡片列表,直接通过组件名引入组件:
{#each $cards as card, i}
<Card {…card} index={i}/>
{/each}
细心的小伙伴可能会好奇,上述代码第 2 行的 $cards
变量是从哪儿来的呢?不着急,稍后揭晓~
大功告成!读书笔记的界面开发好了,但这时,所有的按钮都没有任何作用,下面我们来给读书笔记添加功能。
3. 实现功能
不知道大家有没有发现,我们要做的读书笔记,其实就是个简单的增删改查项目!
既然是增删改查,那肯定要有地方存储数据,记录数据的变化。通常数据是存在数据库中的,通过向后端发出请求来操作和查询数据库中的数据。
但这里我们只是一个前端项目,没有数据库,怎么办呢?可以直接使用 Svelte 自带的状态管理 API 来实现本地数据管理,无需引入任何新的依赖!
3.1 管理卡片数据
在项目 src 目录下新建 store.js
,作为数据管理文件,此时目录结构如下:
在 store.js
文件中通过 writable
函数定义 cards
可写变量:
import {writable} from “svelte/store”;
export const cards = writable([]);
定义好之后,cards
已经被 Svelte 框架管理了,可以直接把 cards
当做一个全局变量来使用。
在主页面中引入 cards
,并通过循环语句展示已添加的卡片列表。注意,想要使用状态变量,要在变量名前添加 $
符号。此时的主页面文件 App.svelte
内容如下:
{#each $cards as card, i}
<Card {…card} index={i}/>
{/each}
完成了 cards
的展示后,我们依次实现 cards
的添加和删除吧~
3.2 添加卡片
点击操作面板的添加按钮,可以添加卡片。须实现 AddCard.svelte
文件的添加函数:
上述文件第 15 行起,通过调用 cards
状态变量的 update
函数,在原数组后追加一个元素,实现新增卡片。
3.3 删除卡片
点击卡片上的删除按钮,可以删除当前卡片。须实现 Card.svelte
文件的删除函数:
删除卡片和添加卡片操作类似,都是调用 cards
状态变量的 update
函数,对原数组进行处理,并使用处理后的数组进行更新。
3.4 导出笔记
点击操作面板上的导出按钮,将已添加的卡片导出为 Markdown 格式的笔记文件,实现比较简单。
首先安装 file-saver
库,依赖这个库实现下载功能:
npm i file-saver
实现 AddCard.svelte
文件中的导出函数,将 cards
状态数组保存为文件:
大功告成!一个精美的读书笔记就开发完成啦!
3.5 改进
到目前为止,我们只实现了读书笔记最基本的功能,但这个笔记还存在很多问题:
-
其实目前我们还没有给卡片添加不同的颜色,大家可以在项目中的
public/global.css
文件添加颜色样式。 -
关掉网页后,已经添加的卡片会消失,可以通过浏览器的 Cookie 实现持久化存储,卡片更新时,保存到 Cookie 中,再次打开网站时,从 Cookie 恢复卡片数据,并保存为状态。
感兴趣的读者可以试着实现上述改进功能,还可以发挥自己的想象,给读书笔记添加新功能哦~
4. 发布上线
本地开发完成后,怎么将网站发布,让所有人都能看到呢?
首先通过命令打包项目:
npm run build
会在 public
目录下生成 bundle.js
文件:
此时的 public
目录结构如下:
怎么发布网站到线上呢?先买台服务器?
大可不必,可以使用 Vercel。
对象篇
模块化编程-自研模块加载器
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
QtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy82MTY4MzU2LWU5ZGY5NGRhODZhZGZjNjY?x-oss-process=image/format,png)
模块化编程-自研模块加载器
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-hIzqtSQ5-1713389723564)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!