生成前端海报的 N 种方案和优劣
业务里经常要生成分享海报:PC 分享图、H5 优惠券、年度账单。需求不同,方案也不同——第三方库、自己用 Canvas 画、丢给接口。各自都踩过跨域、字体、清晰度。 下面按 html2canvas、dom-to-image、前端 Canvas、接口出图整理兼容性和取舍。过程中的坑(跨域、文字、伪类)…
业务里经常要生成分享海报:PC 分享图、H5 优惠券、年度账单。需求不同,方案也不同——第三方库、自己用 Canvas 画、丢给接口。各自都踩过跨域、字体、清晰度。 下面按 html2canvas、dom-to-image、前端 Canvas、接口出图整理兼容性和取舍。过程中的坑(跨域、文字、伪类)…
Vue 最独特的一点是 数据驱动:改数据就改视图,少手写 DOM。本篇先对齐数据响应式、发布订阅和观察者,再模拟 Vue 2 的 Vue / Observer / Compiler / Dep / Watcher。 所有示意图(含本地 file:// 路径和站点图)均按原文保留。 一、三个概念 1.…
单向绑定很简单:把 Model 绑到 View,JS 改数据,界面自动更新。双向绑定再走一步:用户改了 View(比如填表),Model 也跟着变。Vue 把这套封装在 MVVM 的 ViewModel 里。 本文从关系图讲到 Vue2 时代的 Observer / Compile / Watche…
不少场景用 body 滚动不方便,只能局部滚动:Windows 浏览器滚动条难看,iOS 默认没有惯性和弹性,加上 -webkit-overflow-scrolling: touch 又一堆兼容问题,个性化的加载、刷新、贴合滚动更难做。iScroll 用 CSS3 transform 模拟接近原生的…
移动端列表要做上拉加载、下拉刷新,原生 overflow 往往不够用。better-scroll 专门解决滚动场景,核心借鉴 iscroll,API 基本兼容,又做了扩展和性能优化。 它基于原生 JS,不依赖框架。编译后 63kb,压缩 35kb,gzip 约 9kb。下面用 Vue 接一套下拉刷新…
Vue.js(/vjuː/)是用来创建用户界面的开源 JavaScript 框架,也常被拿来做单页应用。它关注 MVC 里的视图层,又能方便地拿到数据更新,通过组件方法完成视图与模型交互。面试里「说说你对 Vue 的理解」,通常要从 Web 历史、核心特性和和 React / jQuery 的差别讲…
HTTP 无状态,单系统靠 会话 + Cookie(JSESSIONID) 记住登录。系统一变成应用群,用户却不该每个子系统都登一次、再登出一次。 同父域共享 Cookie 有域名、技术和安全限制,所以要 SSO:独立认证中心发令牌,各系统建局部会话,登录一次、注销一次。乱码文件名的截图地址按原文原…