【网站】Vue3+ThinkJS搭建个人博客网站

2,345 阅读4分钟

花费了一个多星期,终于把自己的小破站搭建好了。下面是网站首页的截图。

image.png

网站的前端用的是:Vue3 + Ts + Naive
网站的后端用的是:ThinkJS + MySQL

网站的在线预览地址是: 非常厉害噻
登录账号:test      登录密码:123

前端页面

登录页面

登录页面做的比较简陋,因为实在是想不出怎么做才好,简简单单才是真。

image.png

因为算是第一版吧,而且主要是个人和女朋友在用,所以并没有对密码做加密处理,都是明文密码,登录模块也是今天匆忙加上去的,还有很多地方待完善。

登录做了 localStorage 处理,一次登录之后下次进来就不用登录了,没有做登出逻辑,所以想要登出切换账号就只能去把缓存清掉

网站首页

主要把网站首页分为4个部分,顶部导航栏、左边的日志记录卡片,中间的全部文章列表,右边的用户信息卡片。

顶部导航栏

采用的是flex布局,两端对齐,点击logo可以返回首页,使用的是Naive的菜单组件,不过还没想好顶部导航栏的数据结构应该怎么搭,因此现在的顶部导航栏是写死的,给我的账号写了一个,给test账号写了一个。

image.png

并且顶部导航栏目前只有妙妙工具箱可以用,其他的都只是个摆设。

日志记录卡片

因为实在想不出放什么了,所以在左边放了个日志记录卡片,这个日志记录是所有用户共享的,当有人发布新的文章、修改文章、点赞文章时都会被记录在上面。当然,文章点赞功能还没实现,因为原本以为点赞的逻辑是,点个赞,文章的点赞量+1就好了,后来有了账号,发现不能简单的+1了,还要对每个用户是否对这篇文章已经点过赞做判断,后面再加这个功能。

image.png

全部文章列表

这个模块显示所有人发布的 公开 类型的文章,文章标题用了Naive的文本省略组件 n-ellipsis,当文章标题过长时会省略,点击文章标题会显示完整的标题。

image.png

文章的标签和标签样式目前也没有做成完全动态的,也是因为数据结构和表的结构没有想好,就暂时搁置了。

文章列表的搜索功能,接口写好了,但是没有给搜索框绑定事件,问就是懒,嘻嘻嘻。

用户信息卡片

image.png

个人主页

在个人主页中可以看到当前用户发表的所有类型的文章(公开、暂存、私密),可以看到已经对标签、栏目动态定制,数据可视化做好了准备了,后面会加上这些功能。

image.png

写文章

强烈推荐这个插件:v-md-editor,如果你也想要在Vue中使用md编辑器,一定要试试这个,使用起来特别简单,按照官网的步骤来引入后,只需要在想要显示md编辑器的地方写下下面的代码就可以了。

 <v-md-editor v-model="content" height="80vh" />

想起来一开始的时候,自己走了各种弯路,想着怎么把.md文件解析成.vue文件然后显示出来,各种折腾各种配置还带着各种报错,现在一个插件就搞定了,感谢造轮子的人们!

image.png

写完文章点击工具栏上的保存按钮就可以了,也可以使用快捷键 ctrl + s,保存成功(也就是发表成功)后会自动跳转到首页。

查看文章

查看文章没啥讲的,只是使用了 v-md-editorpreview 模式,如果你是当前查看的文章的作者,会在发布日期的旁边显示一个编辑按钮,点击之后就可以直接对文章进行编辑了,当然,现在只支持编辑文章内容,想文章标题、文章标签、文章栏目、文章发布方式啥的,等数据库架构好了再添上去。

image.png

接口文档地址

ApiFox接口文档

整个网站就这么简单啦,欢迎大家来试用,有啥想法可以用test账号留言呀!