2023,我这一年
写在前面
大家好 ,我是Rayce。
这篇文章是我对于自己在2023这一年经历的事,包括学习、生活上的一些事情的回忆和总结。
关于学习
关于写博客我想说
转眼2023年已经到年底了, 从开始正式的使用hexo来搭建博客网站到现在的写博客, 正好一年。 还记得当初最开始的时候 ,年初1.1号, 先是从自己曾经的CSDN和稀土掘金上的内容搬到这里, 然后再进行修改。接着就是总结每日的学习总结, 干了什么就写什么, 虽然内容看着很多, 但是我知道内容质量很低, 所以我就将自己在CSDN和稀土掘金上发布的文章全部删除, 因为我认为自己的水平并没有达到能够输出文章让别人阅读的地步。当然还有一个最重要的原因就是我认为自己在那种网站上写文章之后自己的心态完全发生了变化, 已经完全不是为了学习, 而是关注每天的文章阅读量、点赞量、转发量、收藏数等等。 这种虚荣心作祟的感觉让我不在沉醉于技术, 而是“妄想成名”。意识到这点之后我立马将里面的内容删除,账号注销, 内容全部搬到这里, 所以能够看到这篇文章的人应该是很少数的,我并未有过任何想要宣传的想法和行动。“花香蝶自来”这句话时刻指明着我前进的 ...
文件上传是如何实现的?
文件上传是程序开发中必不可少的一个环节,对于文件上传的实现也是千奇百怪。 但是上传的基本流程基本一致。这里我们大致学习一下。
大致流程就是:浏览器端提供了一个表单,在用户提交请求后,将文件数据和其他表单信息 编码并上传至服务器端,服务器端将上传的内容进行解码了,提取出 HTML 表单中的信息,将文件数据存入磁盘或数据库。
数据库中文件的表有哪些字段 ?数据库中的文件字段其实没那么复杂,就是简单的描述文件的基本信息, 以及文件的编码值(便于后面解码下载文件), 当然还有文件在服务器中存储的位置。这里是否删除和是否启用我们使用的类型是tinyint类型, 相信经常开发的同学应该是知道为什么使用吧。
数据名称
数据类型
数据描述
id
bigint(0)
主键
name
varchar(255)
文件名称
type
varchar(255)
文件类型
size
bigint(0)
大小
url
varchar(255)
文件路径
is_delete
tinyint(1)
是否删除
enable
tinyint(1)
是否启用
md5
varcha ...
前端购物车&订单结算模块详解
前置加入购物车购物车唤起&加入购物车
通过点击加入购物车
首先, 我们需要在vant中找到对应的组件, 这里是ActionSheet组件。 通过对ActionSheet组件的修改, 从而得到我们需要的内容。
这里我将已经修改过的代码展示出来
1234567891011121314151617181920212223242526272829<van-action-sheet v-model="showPannel" :title="mode === 'cart' ? '加入购物车' : '立刻购买'"> <div class="product"> <div class="product-title"> <div class="left"> <img src="http://cba.itlike.c ...
基于Vue实现登录模块详解
通过前端项目Mall-project (https://github.com/Ray2310/MallProject)使得对于vue技术的实现有了大致的了解和使用。 这里我将具体到一个模块的完成, 从而实现对于vue技术在登录模块下的各个方面的细致讲解。首先,我们按照vue的思想, 通过组件的形式来完成对于项目的code。 因此按照项目的UI图 以及 登录模块的接口文档, 我们将项目划分为以下内容来进行将解
项目UI图
页面布局之顶部导航顶部导航栏, 我们可以通过使用vant中的组件来实现,这样大大减少了code的工作量首先我们通过使用vant组件库的按需导入, 从而实现压缩项目体积, 提升了项目的加载速度和性能, 同时也可以提升网络请求。所以这里采用按需导入而不是全部导入。
组件导入实现步骤
创建utils/vant-ui.js作为专门封装vant组件的js模块, 我们只需要再main.js中导入即可
123456789101112131415// utils/vant-ui.js//把引入组件的步骤抽离到单独的js文件 将需要导入的配置 放在此处。import Vue fro ...
回溯总结
说明回溯, 简单来说也就是暴力算法, 之前在学习二叉树 和 递归算法的时候, 我们都涉及到了回溯, 只是没有深究而已, 对于回溯而言,他本身就是将所有的结果穷举出来, 所以我们这里说回溯就是暴力算法。在跟随《代码随想录》的学习中, 将回溯算法拆分为了以下几个模块来学习
组合问题:N个数里面按一定规则找出k个数的集合
排列问题:N个数按一定规则全排列,有几种排列方式
切割问题:一个字符串按一定规则有几种切割方式
子集问题:一个N个数的集合里有多少符合条件的子集
棋盘问题:N皇后,解数独等等
也是通过上面的几种类型的题, 我们才能将回溯算法基本掌握, 但这并不代表完全掌握。所以下面我将按照上述几种类型的题型并结合我的力扣刷题没有AC的题目进行总结。
**解决回溯算法最好的方式就是画图将其抽象为树结构,然后根据图来进行理解 **这是卡哥的回溯模板, 我们这里也是按照其进行代码书写的
123456789101112public void backtracking(参数) { if (终止条件) { 存放结果; return; ...
Vuex核心属性详解
VueCli 自定义创建项目1.安装脚手架 (已安装)
1npm i @vue/cli -g
2.创建项目
1vue create hm-exp-mobile
选项
12345Vue CLI v5.0.8? Please pick a preset: Default ([Vue 3] babel, eslint) Default ([Vue 2] babel, eslint)> Manually select features 选自定义
选择eslint的风格 (eslint 代码规范的检验工具,检验代码是否符合规范)
比如:const age = 18; => 报错!多加了分号!后面有工具,一保存,全部格式化成最规范的样子
启动项目
1npm run serve
Vuex
Vuex 是一个 Vue 的 状态管理工具,状态就是数据。大白话:Vuex 是一个插件,可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。例如:购物车数据 个人信息数
基本使用
1.安装 vuex安装vuex与vue-rout ...
Vue路由
引言什么是单页应用程序:单页应用程序:SPA【Single Page Application】是指所有的功能都在一个html页面上实现
单页应用和多页应用的区别:
单页面应用程序,之所以开发效率高,性能好,用户体验好最大的原因就是:页面按需更新
路由的基本使用定义&作用:修改地址栏路径时,切换显示匹配的组件
基本使用固定5个固定的步骤(不用死背,熟能生巧)
下载 VueRouter 模块到当前工程,版本3.6.5
1npm install vue-router@3.6.5
main.js中引入VueRouter
1import VueRouter from 'vue-router'
安装注册
1Vue.use(VueRouter)
创建路由对象
1const router = new VueRouter()
注入,将路由对象注入到new Vue实例中,建立关联
1234new Vue({ render: h => h(App), router:router}).$mount('#app ...
组件化详细
一、组件的组成部分三大组成部分
1234567891011<template> </template><script>export default {}</script><style scoped></style>
二、scoped解决样式冲突默认情况:写在组件中的样式会 全局生效 → 因此很容易造成多个组件之间的样式冲突问题。
全局样式: 默认组件中的样式会作用到全局,任何一个组件中都会受到此样式的影响
局部样式: 可以给组件加上scoped 属性,可以让样式只作用于当前组件
1234567891011<template></template><script>export default {}</script><style scoped></style>
scoped原理通过上述的<style scoped>就可以使
当前组件内标签都被添加data-v-hash值 的属性
css ...
Vue工程化
生命周期Vue生命周期:就是一个Vue实例从创建 到 销毁 的整个过程。生命周期四个阶段:① 创建 ② 挂载 ③ 更新 ④ 销毁
创建阶段:创建响应式数据
挂载阶段:渲染模板
更新阶段:修改数据,更新视图
销毁阶段:销毁Vue实例
12345678910111213141516171819202122232425262728293031<div id="app"> <h3>{{ title }}</h3> <div> <button @click="count--">-</button> <span>{{ count }}</span> <button @click="count++">+</button> </div> </div> <scr ...
二叉树篇二刷总结
总结二叉树篇,我们总共做了有关二叉树的遍历方式、求解二叉树的属性、对二叉树的修改以及构造等这几类的题型, 总结下来就是对二叉树的各种遍历方式的不同程度应用。
如果做到像对二叉树的递归遍历的每个层次都知道下一步要干什么、需要怎么回溯得到什么结果、 每层遍历得到的内容是什么下一层又会遍历到哪一个节点、如何记录前一个节点、递归终止的逻辑是什么……
对于迭代遍历如何确定是使用栈还是队列、队列or栈中的数是代表什么、出栈or入栈操作需要做的下一步是什么、如何收集结果、队列和递归的区别是什么…….
如果上述的几个问题你都能够全部想明白并且能够通过代码的方式实现, 那么二叉树章节基本是没有什么问题了。
题型题解二叉树的遍历篇二叉树的遍历篇已全部ac, 相关题目在卡哥的《代码随想录》中都有, 个人建议每个题目都用递归和迭代都做一边。
遍历的相关题型
102.二叉树的层序遍历(opens new window)
107.二叉树的层次遍历II(opens new window)
199.二叉树的右视图(opens new window)
637.二叉树的层平均值(opens new window)
42 ...