2.9k3 分钟

说起技术栈,其实思来想去也是考虑了蛮多东西的。因为我自己是前端出身,也是沾了 Node.js 的光才慢慢摸索到后端相关的知识之后进行系统性的学习。 而这个项目创立的初衷之一,也是为了巩固我目前所学到的技术,并且期望遇到一些技术难点并加以解决。 因此,在这个项目中我打算采用目前比较流行的、目前我正在学习的技术栈,分为前后端两部分进行设计。 前端代码仓库:https://github.com/nonhana/Picals-Frontend-React 后端代码仓库:https://github.com/nonhana/
3.4k3 分钟

由于主要目的是参考 Pixiv 等插画网站设计制作一类似的插画交流网站,因此这个网站会具备一些用户之间沟通互动的属性,并且主要形式是以用户为单位,沟通形式以用户主动转载、分享插画为主。 # 用户功能 关于用户的功能可以大致分为: 登录注册 登录注册是用户进入站点解锁全部功能所必须的,否则将无法进行用户之间的互动操作,比如评论、点赞、收藏等。只有登录之后用户才能够进行用户的互动操作。 主要考虑的注册方式是 邮箱 + 验证码注册 ,主要考虑的登录方式是 邮箱 + 密码登录 。 个人中心 个人中心是用户管理自己作品、管理个人信息的主要空间。主要功能如下: 查看个人资料 查看发布作品 查看喜
4.3k4 分钟

# 这个项目是? Picals 是一个受 Pixiv 启发、由我本人自发创建与设计的一个插画收藏平台项目。它旨在为大家提供一个相较于 Pixiv 使用更方便、在国内浏览更快捷的找图、存图的方式,并且和论坛的功能相结合,营造和谐、舒适的国内插画讨论环境。 # 这个项目の起源 一切的起源只是单纯的喜欢。我是一个爱好动漫和插画的人,平时一有空的时候便会打开一些比较著名的插画平台进行浏览,看看今天有没有我中意的画作。一旦遇到符合审美戳我 xp 的作品,我都会一脸欣喜的将该作品保存至我的电脑内部以满足我的收藏欲绝对不止我一个人有这么干过吧,并时不时打开浏览其细节。 但是这样子 仅仅只是将插画图片保存到
14k13 分钟

# 前言 最近由于一些乱七八糟的原因,接触到了国内开发的一些类 ChatGPT 的 API 的前端调用与功能集成。概括的来说,就是有一个需求,需要在 Web 前端页面中集成类似于 AI 聊天助手的功能,而怎么去跟这个 AI 助手一起聊天呢?这时候就需要调这个 GPT 助手的 API 来实现了。 不过我们都知道,在平常和 ChatGPT 一起聊天的时候,问他问题,他不是一下子全部加载好回答出来的,他是会将所有的返回信息处理成一个 信息流 的方式进行返回,所以我们是可以看到 ChatGPT 在回答消息的时候是逐字逐行来输出的。而浏览器本身也是通过 EventSource 这一个内置的 API 来接
1.3k1 分钟

# 前言 Nest.js 在对数据的不同方面进行处理的过程中也提供了多种不同的处理器,包括但不限于: middleware—— 中间件 Guard—— 守卫 Pipe—— 管道 handler(controller)—— 处理器 Interceptor—— 拦截器 Exception Filter—— 异常过滤器 当一个请求从最上面传过来的时候,如果你将这些处理器全部定义完毕并加以注册使用,那么 Nest.js 会依次调用它们,最终让请求处理完毕后按照期望的格式进行返回,或者应对各种各样的请求错误。 # 具体的处理流程及一般作用 # 1. 中间件 (Middleware) 中间件是在请求
6.4k6 分钟

# 前言 最近准备好好开始刷 leetcode 了,而刷题之余写一些总结性质的东西我也觉得是非常有必要的。 最近刚好在回顾题目的时候看到了二数之和、三数之和、四数之和等等的题目,并且它们的解决方式都十分的类似,因此想着趁这个机会进行一些总结。 当然之后也会总结一些其他性质的题目,这次写文当作是一个开端吧,我希望我的算法水平能在日积月累中取得一些成效~~ # 二数之和 这道题目在 leetcode 上是排名 No.1,可见是无数入门算法的同学们的初见,对其感情之深(T v T)当然刚刚开始我也一头雾水没啥思路。 我觉得对于算法题而言,最重要的就是看到这个题目之后你要有思路怎么去解决。无论是数据结
4.5k4 分钟

事先声明,纯纯做记录用,如果有哪里说的不对请留一下言哦! # 前言 由于我自己之前完全没有接触过相对 系统性 的 github 协作开发,而最近在实习的过程中技术主管和我科普了一下比较符合实际的规范协作流程,于是我想着写一篇文章来总结一下。 首先我们需要知道在一个项目中,你如果是作为团队的一员,那么所有的分支、issue 以及 PR 都应该是以 你所完成的单个功能 为单位。一个个 功能 的不断被实现,最终拼凑出一个完整的项目。而且以功能作为协作开发的单位的话,也使得整个项目变得比较容易去追溯维护。如果某个功能出现了问题,直接去找实现这个功能的成员就可以了。 # Github 提供的项目工具
5.5k5 分钟

# React 中的组件渲染机制 在了解这个方法之前,需要了解一下 React 中的基本渲染关系。 在 React 当中,组件之间是严格按照父子关系来渲染、传递数据的。如果什么其他的配置都不加,就十分纯粹的写了父组件,内部套了一个子组件。这个父组件有个状态叫 count ,那么调用 setCount 的时候就会触发父组件的更新。 而父组件的重新渲染,会导致子组件无脑进行重新渲染,无论传给子组件的 Props 是否发生了变化。 这有可能会导致组件性能的极大浪费,因为有些父组件的状态可能会不断的发生变化,而子组件有时候需要保留自己的状态(如 input 框)。 # React.memo 是
3.6k3 分钟

# 只在顶层使用 Hooks 规范说明: 不要在循环、条件或嵌套函数中调用 Hooks。这是因为 React 依赖于 Hooks 的调用顺序来正确地关联 Hook 的状态。如果在这些 JavaScript 构造内部调用 Hooks,会打乱这个顺序,导致 bugs。 示例: import React, { useState, useEffect } from "react";const MyComponent: React.FC = () => { const [count, setCount] = useS
5.2k5 分钟

# useEffect 是? 在 Vue 中,每个组件的生命周期钩子函数是比较重要的。我们经常会在组件挂载和卸载的时候进行一些初始化或者卸载的操作。与此同时,为了监听某项响应式数据的变化并触发相应的函数,我们会使用 watch 这个函数来进行监听。 而在 React 当中,有一个把生命周期钩子函数和监听数据的功能全部合为一体的 Hook,那就是 useEffect 。 useEffect 是 React 中的一个 Hook,它允许你在函数组件中执行副作用操作。结合 React 组件的生命周期方法,可以把 useEffect 看作是 componentDidMount 、 com