进步日记7
进步日记7嗯,昨天考完了英语六级,感觉难度一般,如果这次不过的话就不考了,继续focus on开发的项目。目前也完成了auth的学习,之后需要尝试学习使用QQ等第三方平台快速登录——当然,之后我马上就得花时间准备期末考试了,所以剩下这两周的时候比较有限了,只是可能花点时间确保脑子还对代码有一定的熟悉感。
之后最后面的一周准备好寒假需要进行的第一个app的开发准备,明确是否需要服务器数据库,需要使用的技术栈,采用的风格,是否可以上架到应用商场等等问题。回家之后需要花费大概一周时间完成这个(我猜测),如果没问题的话再花一周时间完成官网的重置和部署,计算目前已有的预算和是否有盈利的空间。
如果寒假能够完成这么多事情,我觉得已经足够了。毕竟这段时间的我已经算比较疲惫了。
————12.15
看来又过了一段时间,最近的想法其实还是比较多的。但是看到下个学期的课表,毫无疑问,这场赌博的筹码必须要增加了。不能再把时间浪费在自己已经掌握理解的地方,不能容忍自己一直在理论层面而没有实践,不应该止步于古老的课本而需要不断了解最新的知识内容。
当然,如何把这些技术转化为商业,为自己获取资源是非常重要的。需 ...
全栈开发之路
全栈开发之路Backed Develop环境配置
创建文件夹
创建api文件夹
命令npm init初始化
安装Express,使用npm install express
安装依赖,npm install -D typescript tsx @types/express
创建tsconfig.json文件
(代码如下)
1234567891011121314151617181920{ "compilerOptions": { "module": "ESNext", // Use ESNext for ESM "target": "ES2020", // Target modern ECMAScript versions "moduleResolution": "node", "esModuleInterop": true, "allowSyntheticD ...
auth学习记录
Next Auth V5- Advanced Guide (2024)Zod数据验证
Zod 是一个 TypeScript-first 的 数据验证库,它的主要作用是通过简洁且强类型的 API 来验证和解析数据。它可以帮助你确保输入的数据符合预期的类型和结构,通常用于处理表单数据、API 请求的输入验证等场景。
(example)
12345678import * as z from 'zod';export const LoginSchema = z.object({ email: z.string().email({ message: "Email is required" //错误message }), password: z.string()});
验证数据:
12345678910tsconst data = { email: "example@example.com", password: "password123"} ...
markdown文本使用
读取文件首先,我们创建一个posts文件夹,在里面创建.md后缀的markdown文本作为例子。
然后可以使用fs函数读取文件
123456789import fs from "fs";const getPostMetadata = () => { const folder = "posts/"; const files = fs.readdirSync(folder); const markdownPosts = files.filter((file) => file.endsWith('.md')); const slugs = markdownPosts.map((file) => file.replace(".md", "")); return slugs;};
之后可以在对应的page.tsx文件中使用
12345678const postMetadata = getPostMetadata(); const postPrev ...
进步日记6
进步日记6最近在开发网站,从一开始的什么都不懂,到现在初具原形,真的让人感到惊喜。虽然我的代码可能存在很多问题(改一个地方样式全乱了hh有些无奈了),但是我感觉自己在开发的时候心情虽然上下波动,但是却没有“学习”教程时的不耐烦的感觉,可能这就是自己创造和copy别人的区别吧哈哈。慢慢来吧,真诚以待,如今的社会充满了对立,人与人之间形成了一道道无形的篱笆,一个个圈子,一个个自大而又无知的人,一张张嫉妒而又懒惰的嘴脸。hh抱怨的话就不说太多了,总之,新的旅行开始了!加油吧O(∩_∩)O
————10.26
哦呀,明明说要猛猛开干的,没想到深陷虚拟世界无法自拔了。所以说打游戏有益于学习真不是开玩笑,最近这两天确实被动漫信息影响了大脑导致无法好好地思考了。不过应该睡一觉就会好了,第二天许多东西都会被遗忘了。虽然这两天没干什么,但是现在我还是把网站已经部署上线了。虽然还有许多缺陷,但是在之后的日子里我会一边学习一边补足的(PS:以后只要不是日常番,剧情比较沉重的,不建议在不放假的日子看,太影响状态了,没办法,感受了冒险的悸动,回到枯燥不变的现实难免让我的大脑宕机了),之后就再多尝试一些新东西 ...
从0到1
一个新时代的开端在经过了许多摧残(版本不同,中国用不了,原来是免费的现在要收费了)之后,我下定决心直接开始从头上线一个网站,一定在一个月之内完成(我的数据库免费试用只有一个月…)没错!我要一步一步记录下我的全部思路,直到我完成这个project,我打算使用Next.js开发,然后部署到vercel上,数据库和网页制作则是这次的学习重点。
少时须知凌云志,曾许人间第一流。
环境配置
安装Nextjs
在命令行中输入命令npx create-next-app@latest 名字,之后的选项自行填写完成。
(现在最新的Nextjs安装的是React19,可能会产生一些依赖问题,如果没有必要使用,则回退到React18即可)
新建public文件夹
用于存放公共的图片,字体等资源
安装shadcn
shdcn是一个UI库,可以帮助我们加速开发,输入命令
npx shadcn@latest init
新建components文件夹
用于存放公共的组件之类
调整globals.css文件
我们在代码中添加部分代码,用于保证例如h-full生效
(现在好像不需要也可以了)
12345ht ...
前端知识补丁
1. Modal(模态框)场景
用户交互:用于获取用户输入或显示消息,通常是阻止用户与其他部分交互直到模态框被关闭。例如,表单提交、确认对话框、警告消息等。
任务集中:将用户的注意力集中在一个任务上,而不允许他们与应用的其他部分交互。例如,创建或编辑内容的表单。
引导:用于展示重要信息或引导用户进行某些操作,如首次使用的欢迎教程或步骤指南。
应用
显示表单:在用户点击“添加”或“编辑”按钮时显示一个表单。
确认操作:在用户执行关键操作(如删除数据)时弹出确认框。
提示信息:在需要用户确认某些信息时展示重要提示或警告信息。
2. Provider(提供者)场景
全局状态管理:通过 React Context 或类似的机制在应用中共享状态。Provider 组件使得它的子组件能够访问这些状态。
主题设置:提供全局的样式和主题设置,如颜色、字体或布局,供应用中所有组件使用。
国际化:提供多语言支持和翻译功能,使得整个应用可以根据用户的语言偏好显示内容。
应用
状态共享:在多个组件之间共享数据,如用户认证状态、应用主题或语言设置。例如,通过 ThemeProvider 提供全局主题设置。 ...
课外阅读记录
课外阅读记录推荐《自卑与超越》——阿尔弗雷德 · 阿德勒
《悲剧的诞生》——尼采
《游戏设计艺术—第三版》——Jesse Schell
《黑客与画家》——Paul GraHam
《浪潮之巅》——吴军
from 大学村上村树–《当我谈跑步时,我谈些什么》
雷蒙德·钱德勒–《漫长的告别》
理查德·保罗–《批判性思维工具》
啊哈磊–《啊哈!算法》
《C Prime Plus》
《游戏设计快乐之道》
《漫画算法 小灰的算法之旅》
《深入浅出程序设计竞赛》
《人月神话》
《程序员的数学》
《游戏改变世界》
《数学之美》
《MySQL必知必会》
《游戏设计艺术—第三版》
《心》
《面向对象是怎样工作的》
《计算机是怎样跑起来的》
《网络是怎样连接的》(1/2)
《真相:信息超载时代我们该相信什么》
《Don’t Make Me Think》
《黑客与画家》
《自体心理学的理论与实践》(还是不喜欢精神分析,这本书是买错了)
《浪潮之巅》
《智能时代》
《what if 那些古怪又让人忧心的问题》
《思考,快与慢》
《赢》
《男孩鼹鼠狐狸和马》——感觉这不能称之为书了
《文明之光——第一册》 ...
SASS——自定义我的css
SASS——自定义我的css样式(ps:grid布局和extend懒得写了)
准备工作
npm install gulp gulp-sass sass --save-dev ,进行基本配置的安装
npm install -g gulp,如果下面输入gulp命令无法识别请全局安装
在项目中创建gulpfile.js文件,在文件中配置如下
这些配置里面资源使用*代表全部编译,因为把scss文件都放置到shinobi文件夹下,所以做一些基本修改,/**表示全部子文件
1234567891011121314const { src, dest, watch, series } = require('gulp');const sass = require('gulp-sass')(require('sass'));function buildStyles() { return src('shinobi/**/*.scss') .pipe(sass()) .pipe(de ...
进步日记5
进步日记5今天晚上debug的时间太长了,主要是一对目前项目结构不够了解,对程序执行流程不够清晰,导致我很难定位出具体问题位置。其次,我的debug方式有点丑陋,纯瞪眼debug法,打印了日志也没看出问题在哪里,最后还是依靠GPT-4的帮助才找到了问题所在。当然,有时候拼写错误,或是格式没有转化导致判断失效等等基础问题还是尽可能避免为好。白天的时候上的计算机系统基础课似乎有些无聊,教材编写的也过于繁杂,真是可惜,用这一周的时间稍微看一下各个课程的上课情况,同时尽可能熟悉React开发。
——9.2
居然已经过了这么久了么^_^,感觉现在学编程就像野狗,到处找教程学教程。听了一会觉得不好就得换,学的东西多了又不知道怎么选择QAQ。这段时间稍微对SASS进行了一些学习,本想着可以“打造属于自己的css”,学完之后感觉也只是稍微了解了一下。这两天在准备nextjs的学习。在学这些东西的时候又想兼顾最新的版本ε=(´ο`))),人生苦短。但是还是加快学习进度为好,学校的课程经过第一周的判断,鉴定为教材垃圾,老师的课程设计像面向幼儿园编程,所以在课堂上我会尽可能一边通读教材,模拟示例 ...