vue-koa2-blog单用户博客admin篇

vue-koa2-blog admin篇

这篇文章主要讲的是在写博客后台管理系统中需要解决的一些问题。这些问题可能有点小坑,需要花些时间在上面,至于其他问题,其实真正动手去写就能解决了。
front端体验
admin端体验账号密码都是admin,请尽量不要修改或删除文章。
vue-koa2-blog server篇

展示



后台管理系统的布局方法-内滚动布局

现在的web站点很多有桌面软件的风格,特别是单页面应用,把页面的切换动画做好,使用起来颇有桌面软件的感觉。一般来说,我们经常分为一级路由,二级路由,为了更像native app,建议一级路由以及其同级路由采用fade淡入淡出的方式来进行切换,二级路由以及其同级路由采用左右侧滑的方式来进行切换。好了,说重点。

内滚动布局

所谓内滚动布局,其实就是主滚动条在页面内部的布局。我们平常常见的web应用,我们可以看到滚动条是在最外面的,及是相对于传统的html滚动而言的。
大家可以看我的admin端,是看不见滚动条的,其实就是内滚动布局+css实现滚动条隐藏这两个知识点的运用。
步骤一: 既然是内滚动布局,就必须要干掉原生html的滚动条

html{
    overflow: hidden;
}

步骤二: 如果实现顶部及左侧固定,不跟随滚动,右侧主体内滚动并占满屏幕剩余的部分呢?

# 页面结构
body
    page
    header
    side
    section.content
        div
# 绝对定位实现全屏拉伸
.page {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
}
#头部 header
header{
    height: 60px
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
}
#左侧导航栏
div.navbar{
    width: 100px;
    position: absolute;
    top: 60px;
    bottom: 0;
    left: 0;
}
# 主体部分
section.content{
    position: absolute;
    top: 60px;
    left: 100px;
    right: 0;
    bottom: 0;
    overflow-x: hidden;//配置隐藏滚动条
}

步骤三: 把很丑的滚动条隐藏起来
隐藏滚动条的原理:已知有两个div,子div出现了滚动条,那么父div只需要比子div的宽度少20px,再加上overflow: hidden,那么滚动条就被隐藏了。

section.content div{
    width: calc(100% + 20px);
}

封装一个挂载到Vue.prototype的弹窗组件

许多人用过element-ui这套组件库,当初在写admin端的时候其实考虑过直接上element-ui,然后我就去官网读了常用组件的使用方法,当时看过它使用信息提示框Message组件的时候,通过调用this.$message(),弹窗组件便完成了显示并自动摧毁。因为我之前在练手vue的时候,都是import组件进来的,很麻烦,每个页面都得import一次,所以npm install element-ui下来,然后看它的源码,发现它是利用vue.extend预定义选项创建可复用的组件构造器,再封装一个构造函数暴露出来,每次调用this.$message()其实就是new 构造函数一次,但组件隐藏的时候,需要我们手动this.$destory()一下。
另外一个在博客管理系统常用的组件就是confirm组件,我们删除文章肯定要给用户多一次提示,以免是用户点错的删除。这两个组件是用频率最多,大家可以先把这两个组件先码出来再做其他。
Message组件和Confirm组件源码(代码都留注释了)

用sessionStorage来存储token

只前做过一个小项目vue-koa2-login,只是把登录拿到的token存储在store里面,这样做的坏处就是一旦刷新页面,vuex会重新初始化,相当于退出登录了。在这个项目里,我把token存在sessionStorage并在初始化token时,用sessionStorage来初始化store.state.token,现在刷新页面token也还在不会导致退出登录了。

const state = {
    token: sessionStorage.getItem(‘blog-token‘);
};

marked.js+highlight.js

markdown编译器选用的是simplemde,常见的功能例如各种快捷键,分屏预览,全屏预览,提示等等都有,可定制性还挺强。我的习惯是每写完一段文字,总是会不自觉的按下ctrl+s,所以我就直接做成按ctrl+s保存文章了。大家也可以做成自动保存文章,用上防抖函数保一直saveArticle函数即可,逻辑也很简单。
说到mared.js,marked只是负责把markdown解析成html,hljs的作用是负责高度解析出来的html里面的部分,即代码端部分。存放在数据库,即文章的内容字段,存的就是markdown解析成的html。到时在front端展示文章内容,借用v-html这个指令插入这段html便能完成文章的显示了。
对了,hljs在官网可以定制它的语言包,可以只注册需要高亮的语言,这样就不至于js文件过大。

学习资料

koa2实现基本token的登录注册
打造 Vue.js 可复用组件
vue中动态绑定图片的问题
hljs学习
防抖动函数
容易理解的抖动和节流函数
如何优雅的选择字体(font-family)

原文地址:https://www.cnblogs.com/homehtml/p/12222748.html

时间: 2024-10-10 16:02:35

vue-koa2-blog单用户博客admin篇的相关文章

Android应用开发-小巫CSDN博客clientJsoup篇

Android应用开发-小巫CSDN博客clientJsoup篇 距上一篇博客已经过去了两个星期,小巫也认为很抱歉,由于在忙着做另外一个项目,差点儿抽不出空来,这不小巫会把剩下的博文全部在国庆补上.本篇博客将会给大家介绍怎样使用Jsoup这个库来解析我们的网页,而且怎样对我们想解析的网页进行分析. Jsoup这个库的下载地址:http://jsoup.org/download 笔者这里使用的jsoup-1.7.2 下载完之后拷贝到项目中的libs文件夹下就可以: Jsoup的资料比較少,可供參考

Django开发博客(基础篇)

Django开发博客(基础篇)http://www.itmin.cn/archives/918

结合 Laravel 5.5 + vue 2.5 开发的博客

此博客是基于laravel 5.5和vue 2.5开发.后台用的是element-ui. 网站:https://overxue.com 源码:https://github.com/overxue/blog 前段时间在github上看到了美团开源的小程序框架mpvue,正好拿这个博客试了下水,用起来还是蛮爽的. 源码:https://github.com/overxue/mpblog 扫码体验 欢迎各位 issues.stars,我会不断完善这个博客,大家互相学习. 原文地址:https://ww

Django开发博客 入门篇

Django是神马? Django是一个开源免费的Web框架,使用Python编写.能够让你快速写出一个Web应用, 因为它包含了绝大部分的组件,比如认证,表单,ORM,Session,安全,文件上传,页面模板等,避免了重复造轮子. 官方网站:https://www.djangoproject.com/ 笔者写这篇教程的时候,最新版本是1.9 安装Django1.9 安装python虚拟环境 为了开发应用的时候使用单独的环境,最好是安装virtual environment, 这样有很好的独立性

基于Hexo+Node.js+github+coding搭建个人博客——基础篇

附上个人教程:http://www.ookamiantd.top/2017/build-blog-hexo-base/ 搭建此博客的动机以及好处在此就不多谈了,之前已经表达过,详情请看Start My Blog Trip - Power By Hexo 记录一下搭建的基本过程以及遇到的一些问题,仅供参考 = =废话不多说,进入主题 Hexo博客搭建的基础大致流程为: 安装Node.js →安装Git → 安装Hexo → 安装主题 → 本地测试运行 → 注册给github与coding并创建pa

程序猿的技术博客Android客户端--博客园篇

2015年尾了,闲了半年,也忙了半年 年尾了,趁着不忙的这段时间,好好梳理梳理 每天逛逛技术博客的习惯从大学一直延续到现在,博客园,csdn,iteye,51CTO,ITPUB之类的 浏览器里面一个个书签,每次打开又关上,一天天重复,一天天的了解着最新的技术资源 终于开始想着,开发一个Android的app来把这些资源整合起来,不仅能节约时间,还能趁机会好好检验下近一年来Android的技术 先上图,今天晚上才开始的 目前:暂时只有博客园首页的文章列表和文章详情的展示界面 主要涉及技术点: 1.

博客第一篇_Xcode6_iOS_APP上传失败总结

Xcode6_iOS_APP上传失败总结 最近刚刚完成工程,上传的时候遇到一些麻烦,在这里分享给大家,希望对遇到同样问题的有些帮助. 我遇到的是这样的,工程调试完成,打包后,用xcode6自带的Application Loader上传时,首先遇到的是 Error Description not available 上传N多次都是这个错误 截图如下: 调试多次未果,初步人为是网络问题,结果回到家任然上传不成功,同样的问题. 翻翻博客,有人提到FQ后上传成功.于是打开FQ,上传,开始了.传输过程遇到

博客第一篇:介绍一个js封装类 MSClass.js

新手第一篇博客,如有不足 请多多指教哈~ 在偶然的一次机会,接触到一个js封装类 那时候是我刚学js的时候,觉得什么效果都写不出来,脑子里也没有什么思路和逻辑之类的(新手们有这样的问题么...) 然后在随便点开链接的时候,接触到了一个js类 MSClass.js.. MSClass,是一款通用不间断滚动JS封装类,几乎支持目前所有流行风格的图片或文字的滚动/切入/渐显等效果,同时支持横向/竖向/连续/间断/缓动等多种形式. 要使用它,先在head部分引入 MSClass.js 核心文件,如: <

Blog -&gt; List 推荐博客链接

Blog -> List 晚上睡觉前没什么事,现在又不怎么想睡,就整理一下关注的bloger们(在CSDN上关注了100+人...),把他们分一下类. 一是方便自己向高手学习,时刻提醒自己. 再者,推广高手们的blog. ----------------------------------------------------------------嵌入式------------------------------------------------------------------------