Vue 响应式原理模拟
Vue 最独特的一点是 数据驱动:改数据就改视图,少手写 DOM。本篇先对齐数据响应式、发布订阅和观察者,再模拟 Vue 2 的 Vue / Observer / Compiler / Dep / Watcher。 所有示意图(含本地 file:// 路径和站点图)均按原文保留。 一、三个概念 1.…
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 的差别讲…
用了 Vue3 大半年,项目一直是 vue-cli 基于 webpack 搭的。刚好有个移动端需求,改用 vite 版 Vue3,这里把脚手架、路由、Vuex、Vant3、rem 适配、axios 和代理的过程记下来。 vite + ts + vue3 一行命令就能起项目;Vant 3 内部是 ES…
这篇文章基于实际使用场景总结了 24 个 ES6 代码段,可用来解决项目里一批常见问题:显隐 DOM、滚动、URL 参数、表单序列化、XHR、剪贴板和 Node 建目录。作者 Madza,译者王强。 英文原文:https://madza.hashnode.dev/24-modern-es6-code…
Vue2 搭配的是 vue-router@3.x 和 vuex@3.x,Vue3 则换成 vue-router@4.x 和 vuex@4.x。版本号都是 4.x,不要和 Vue 3.x 混为一谈。本文是全家桶系列第 3 篇,对照写法看迁移点。 为方便叙述,文中用 vue2.x router、vue3…
本篇是 Vue3 全家桶系列第 2 篇,对照 2.x 讲 vue3.0 新特性:createApp、页面与路由、Composition API(reactive / ref / readonly / computed / watch)、生命周期、Fragment、Teleport、Suspense。…
Vue 3.0 当时已进入 Release Candidate:API 基本冻结,只修 bug,没有大问题就不会再改功能。 本篇是全家桶入门的第 1/4,只做一件事:用最新 vue-cli 快速搭好 Vue 3 项目。正式版之后这些步骤仍然通用,截图对应 2020 年的 CLI 界面。 为了照顾 2…