封装Vue组件的一些技巧
写Vue有很长一段时间了,除了常规的业务开发之外,也应该思考和反思一下封装组件的正确方式。以弹窗组件为例,一种实现是在需要模板中引入需要弹窗展示的组件,然后通过一个flag变量来控制弹窗的组件,在业务代码里面会充斥着冗余的弹窗组件逻辑,十分不优雅。
本文整理了开发Vue组件的一些技巧,包含大量代码示例。
HTTPS原理
发表于 | 分类于 网络
HTTP使用明文发送报文,本身不具备加密的功能。这在危机四伏的互联网中是十分危险的。
在阅读了《图解HTTP》第七章之后,整理了一些关于HTTPS的内容,主要内容就是理解HTTPS的原理和工作机制。
Flutter基础知识
最近准备为组里面的小伙伴分享flutter相关的知识,因此对flutter进行了一些整理,主要包括widget、路由、状态管理,以及一些常见的需求处理方案。
《React设计模式与最佳实践》读书笔记
发表于 | 分类于 读书笔记
《React设计模式与最佳实践》这本书是去年双11的时候在图灵社区入手的了,趁着周末看了一遍,对于了解React基础知识,以及编写React组件,还是能学到一些东西的,下面是整理的随书笔记。
理解数据状态管理
发表于 | 分类于 技术原理
在传统的web应用中,用户和数据的状态更多地放在服务端,每一个页面的状态都在路由切换后重新从服务端拉取即可,前端并不需要过多地考虑数据状态的管理。
随着单页应用的逐渐发展,前端需要管理越来越多的数据:数据的更新会导致UI的变化,UI的交互会触发数据的更新,多个页面之间可能会共享相同的数据,随着应用的的规模增大,维护起来会十分麻烦。
这篇文章主要整理下几种管理前端数据状态的方案,以及进一步思考其背后的实现和意义。
如何在代码中打日志
发表于 | 分类于 编程技术
之前对于代码中的console.log
一直是比较嫌弃的,以致于提交代码前一般会通过eslint检测是否包含了log输出。
最近一直在处理一个chrome插件的需求,需要打开某个url标签页,然后根据预先设定的操作行为,在页面上进行一些列操作(点击选项卡、选择日期、输入参数等),然后等待页面生成报表,实现自动下载的流程。整个过程较为繁琐,很不方便调试,在开发中使用了大量的console追踪页面的状态和操作行为的结果,逐渐认识到:日志应该是开发和调试中很重要的一环。因此在这里整理一下“如何在代码中打日志”的问题。
关于移动端跨平台框架的了解与思考
发表于 | 分类于 客户端
理解Generator函数与async函数
发表于 | 分类于 编程语言/JavaScript
最近看见了一个async函数在event loop中的执行顺序问题,突然发现我对于Generator函数与async的掌握十分有限,惊出一身冷汗,赶忙恶补一番。
web跨页面通信的几种方式
发表于 | 分类于 技术原理
最近在处理一个weex三端的项目,在weex文档中提到,不同的 Weex 页面使用的是不同的执行环境,即使全局变量也是互相隔离的,官方推荐使用BroadcastChannel
来实现实现跨页面通信。
由于移动端safri中BroadcastChannel
存在兼容问题,因此决定研究下web跨页面通信的其他方法。
优化博客开发环境和页面响应
发表于 | 分类于 博客
之前博客使用的是gulp
+ gulp-webpack
构建前端开发环境,存在无法支持热更新、无法自动同步文件hash等问题,因此在v0.5.0
版本对整个静态资源开发环境进行了重构,比较完整地实现了node服务端渲染项目中的前端开发环境,下面是整个开发环境的实现整理。
升级博客到HTTPS
发表于 | 分类于 博客
最近一直在搞flutter,遇见了使用flutter_webview_plugin
支持webview的需求,打算把博客链接放上去,后来发现配置的网页URL必须是https
的才行,由于之前站点一直没有升级https,因此需要首先解决这个问题。
下面是为站点申请免费的https证书的流程整理,实际操作之后,对于https的原理有了更清楚的认识。
理解EventLoop
发表于 | 分类于 编程语言/JavaScript
EventLoop
即事件循环,是JavaScript单线程运行时实现异步非阻塞的原理,掌握EventLoop
是学习JavaScript必不可少的一个环节,本文将整理浏览器和NodeJS中的事件循环机制,并了解他们的差异。
JavaScript中的数据类型转换
发表于 | 分类于 编程语言/JavaScript
JavaScript中的数据类型转换是一个很容易造成困惑的地方。本文是《你不知道的JavaScript(中)》类型转换相关的知识整理,强烈建议去看这本书。
如何部署前端代码
很早之前在知乎上看见一个提问:大公司里怎样开发和部署前端代码?,其中张云龙(fis3作者)的回答十分精彩。但当时由于水平有限,接触到的业务和开发环境也比较简陋。现在公司推行微服务,前端静态资源也基于fis3进行开发环境搭建和部署,算是这个回答比较完整的实现。
现在,是时候思考一下静态资源部署的重要性了。
初识puppeteer
大概是去年还在豆腐重构web站点的时候,一项比较重要的工作就是防爬虫。当时做了一些比较简陋的防爬虫手段,也了解到了一些神奇的爬虫方式,puppeteer就是在那时候了解的。恰好最近有一个工作需求,需要为运营搭建自动化的工作流程,因此想到了puppeteer,决定尝试一下。
初识npm
npm全称为Node Package Manager
,是一个基于Node.js
的包管理器,用于查找、安装、管理和发布 Node.js
应用程序所需的各种包和模块,避免 JS 开发者重复造轮子,让大家的劳动成果可以共享。
npm
是前端工程化的必须要掌握的基础知识,本文将整理通过npm安装依赖的一些细节。
Chrome扩展程序之自动更新
发表于 | 分类于 客户端/Chrome扩展程序
最开始接到产品的Chrome插件需求时,由于用户较少,优先的关注点是功能的实现,并未过多考虑如何部署插件。
每次更新都是提供一个压缩包,然后让用户使用开发者模式下加载本地压缩包的方式进行更新;后来用户逐渐增多,功能迭代也比较快,每次分发压缩包并重新安装,因此就有了插件自动更新的需求~
下面总结了两个插件实现的自动更新的一些整理和心得。