vue之ts下对axios的封装
正文
虽然vue中axios的使用已经十分方便,但是实际我们的日常操作中可能为了接口的规则一致,来创建一个统一管理的全局方法达到简化操作.而且在实际接口对接中,我们大多都需要对请求和响应进行拦截来进行token以及回调状态码的处理.那么我基于自己的需求简单分装了一下.(之前很少接触vue,主要用的ng和react,这次新项目想用vue来弄,熟悉一下vue的一些新特性和方法,有啥不对的,欢迎大家批评指正)
前提: 熟悉前端ts, node等等.
1. 安装axios1npm install axios
2. 拦截器及全局方法编写一个http.ts文件进行自己http逻辑的封装,为了代码分离,我同时创建interceptors.ts文件进行拦截器逻辑,放在一起也行.
interceptors.ts(拦截器,进行请求和响应拦截并进行部分逻辑处理)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656 ...
新的Angular引擎Ivy[译]
Angular Ivy - 第三代Angular渲染器的完整指南。
更小的捆绑包,更快的编译,更方便的调试,还有模块和组件的动态加载以及高阶组件等等高级概念。
一年多以前,Angular核心团队在ng-conf上宣布他们正在研究Angular Ivy,尽管它还没有100%准备好投入生产,但我觉得这是一个深入了解 Angular的新版本渲染器的好时机。
经过漫长的等待,Angular版本8发布!
这是一个主要版本,带来了许多很酷很重要的功能,例如差异加载,新构建器API,Web-Workers支持等等。
但最重要的是,Ivy终于来了!
正文为什么关注Ivy首先-移动设备!
这也许听起来疯狂,但确实我们有63%的在线流量来自智能手机和平板电脑。到今年年底,80%的互联网使用预计将来自移动设备。
我们面临的最大挑战之一是前端开发人员是加载网站尽可能的快。不幸的是移动设备经常因为坏或缓慢的互联网连接,使这种挑战变得更加困难。
另一方面,我们可以使用许多解决方案加载应用程序更快.例如从最近的云的CDN节点请求文件,PWA缓存的资产文件等。但是我们能为开发者做的是最大程度减少包的 ...
03.搭建nextcloud私有云盘
我最近想把自己玩过的好玩的docker镜像整理一个合集,而这篇文章写的比较早,也是docker部署的,所以也依旧收录进这个系列。
前言突然有个需求,需要搭建一个文档存储协同的私有服务,经过多方搜索后找到onlyoffice服务可以满足我的文档编辑相关需求,而存储方面则可以利用nextcloud搭建一个私有云盘服务来满足,这样利用nextcloud+onlyoffice就可以满足我的文档在线协同存储需求,其实说白了就是可以编辑ofiice等文件并分享的的私有云盘.
前期我采用传统的镜像一个一个启动,后边我又换成了docker-compose来部署,所以我也提供了两种方案。还有一点就是我的数据库采用的是postgresql,系统还支持mysql和MariaDB,或者直接使用内置的sqLite。如果采用mysql,MariaDB配置方式和我的postgresql大同小异,内置sqLite则简单很多,直接忽略文章中数据库这一块的所有操作。
安装启动服务方式一传统部署,方式二docker-compose部署,推荐第二种,简单。
不管哪种,先安装docker。
方式一拉取nextcloud镜 ...
ionic之应用集成自动升级功能
升级是应用最基本的功能,因为很少有一个应用发布后不在进行后期维护!原生应用的升级比较常见,但是如今混合应用大热,因为项目,我就基于ionic框架实现了一个简单的升级,根据服务器端返回来确定强制还是非强制更新.
插件安装file(访问文件)12ionic cordova plugin add cordova-plugin-filenpm install --save @ionic-native/file
File Transfer(上载和下载文件)12ionic cordova plugin add cordova-plugin-file-transfernpm install --save @ionic-native/file-transfer
App Version(用来获取版本号)12ionic cordova plugin add cordova-plugin-app-versionnpm install --save @ionic-native/app-version
Uid(获取设备标识,主要用于灰度升级,只升级用不到)12ionic cordova plugi ...
开发工具之Git常用命令
新建仓库文件推送Git 全局设置12git config --global user.name "llcn" git config --global user.email "llcn@163.com"
创建一个新仓库1234567git clone http://172.17.12.206:8080/jukaifeng/test.gitcd testgit switch -c maintouch README.mdgit add README.mdgit commit -m "add README"git push -u origin main
推送现有文件夹123456cd existing_foldergit init --initial-branch=maingit remote add origin http://172.17.12.206:8080/jukaifeng/test.gitgit add .git commit -m "Initial commit"git push -u ...
NexT主题集成Gitalk评论框架
Gitalk简介Gitalk 是一个基于GitHub Issue的评论插件。
项目地址:https://github.com/gitalk/gitalk
特点:
使用 GitHub 登录
兼容PC 移动端
集成简单
新建gitalk.swig在next主题/layout/_third-party/comments/目录中新建gitalk.swig文件,并添加内容:
12345678910111213141516{% if page.comments && theme.gitalk.enable %} <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"> <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script> <script type ...
自定义View之BottomTitleImageView
自定义View之BottomTitleImageView效果图
View生命周期
主要由三部分操作完成,分别是measure,layout,draw:
measure:计算视图大小
layouty:设置视图在屏幕中显示的位置
draw:绘制视图.其中onDraw()方法会花费大量时间,布局变化会重绘视图,所以在onDraw()中要避免对象分配.
invalidate() 和requsetLaytout()作用如下:
invalidate():重新绘制view,执行draw()操作。
requsetLaytout():重新请求绘制view,执行measure()和layout()过程,但不执行draw()操作。
定义和加载自定义属性
在values文件夹中定义属性文件attrs_wcircle_view.xml。
12345678910<resources> <declare-styleable name="WBottomTitleView"> <attr name="textString&q ...