canvas requestAnimationFrame画一个clock

canvas requestAnimationFrame 画一个 clock 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; var h1 = document.getElementsByTagName("h1")[0]; var canvas = document.getElementById("canvas"); var ctx

mousedown event中保持input的focus状态

mousedown event中保持input的focus状态 一定要使用e.preventDefault去除默认失去焦点行为 1 2 3 <input> <button>CLICK</button> <button>MOUSEUP</button> <button>MOUSEDOWN</button> <button>MOUSEDOWN 2</button> 1 2 3 4 5 6 7

vue -- @vue/compiler-core整体逻辑

vue @vue/compiler-core整体逻辑 “version”: “3.3.2” @vue/compiler-core主要处理的是@vue/compiler-sfc模版部

IOS端h5 fixed滚动问题

IOS端h5 fixed滚动问题 1 2 3 4 5 6 visualViewport.addEventListener("resize", resizeHandler); const resizeHandler = () => { // ... } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 需要针对 iOS 越界弹性滚动的情况进行边界检查 styles.left =

vue -- compile结果代码解读

vue – compile结果代码解读 vue中对于sfc文件最终的编译结果,可以在playground中看到 源码 1 2 3 4 5 6 7 8 9 10 11 <script setup> import { ref }

vue -- transformElement源码

vue transformElement transformElement 1 2 3 4 5 6 export const transformElement: NodeTransform = (node, context) => { return function postTransformElement() { // ... // 主函数,返回一个闭包函数 } } resolveComponentType 动态组件 1 const isProp = findProp(node, 'is') 并

Vue -- 内置指令源码

Vue – 内置指令源码 v-once v-once在vue中用于缓存dom实现,在加了这个指令的节点上,只会渲染一次,后续dom更新时会直接使用缓

Vue rewriteDefault解析

Vue rewriteDefault解析 rewriteDefault 通过重写export default的主体内容到一个变量中,可以劫持该变量做