移动端网页避坑指南
移动端浏览器可能会对手指点击做一些优化,在点击某个元素时,如果该元素没有绑定点击事件,会优先查找附近的可点击元素,然后触发附近元素的点击事件,也因此会导致触摸事件被周围元素的点击事件“吞掉”,解决方法是为该元素绑定一个空的点击事件,防止浏览器默认触发周围元素事件。
移动端浏览器可能会对手指点击做一些优化,在点击某个元素时,如果该元素没有绑定点击事件,会优先查找附近的可点击元素,然后触发附近元素的点击事件,也因此会导致触摸事件被周围元素的点击事件“吞掉”,解决方法是为该元素绑定一个空的点击事件,防止浏览器默认触发周围元素事件。
Vue3 的composition api是一次巨大的更新,它几乎完全改变了Vue组件的编写模式,响应式体系更加方便与智能,同时与其他第三方库的配合也更加完美,因此我建议在所有的Vue3项目中,都只使用setup模式来编写组件。
在前端开发中,有什么是继承可以做到而组合做不到的呢?
通俗点说, Peek 是一个简易的数据传输工具,它基于WebRTC进行点对点的数据通讯,并在此基础上实现聊天、音视频通话、文件传输等。得益于peerjs项目的杰出贡献,它抹去了大部分的WebRTC底层实现,使得此项目能专注于传输界面和功能的实现,并且通过peerjs的官方STUN服务器实现NAT穿透,使得Peek无需服务器也能正常使用,成为一个纯粹的静态前端SPA项目。
如果要实现一个历史记录功能,支持撤销和重做操作,例如正确地打印下面的代码,要如何实现呢
在我看来,vue3和vue2最大的区别就是响应式的思考方式的改变,在vue2中,响应式是渲染框架的一部分,你没办法单独地创建一个响应式状态然后复用它,只能用mixin把状态像配置文件那样隔离出来,再用在其他组件当中,响应式也只在组件中生效,这使得一套业务逻辑很难在vue中复用。如果你想要构建组件库,在vue2中最好的方式是构建一个大而全的组件,然后提供数量繁多的props给开发者自定义,而不是提供细粒度的单个组件让开发者自己组装,因为组装需要的逻辑一旦涉及到组件状态就会无法抽离,导致许多重复又无意义的封装。
最近接触到了Discord Bot开发,也大概了解了开发一个Bot的流程,既然整个bot开发都能给予nodejs来完成,那么理论上使用stackblitz这个平台就能胜任,这样只需要一个chromium浏览器就能搞定了,岂不美哉?
VitePress 的原理是利用 Vue 的 SSR 特性,服务端先把包含 Markdown 文本内容的 Vue 组件渲染成多个静态 HTML 文件,再配合内置的简易路由系统生成一个博客站点,这其实与 VuePress 的原理如出一辙,不过 VitePress 舍弃了许多臃肿的功能,只保留最简单的渲染系统,并且重新实现了一个简易的 router,保持了轻量性,同时也因为使用 Vite 提高了开发时的速度,对于拥有大量文档的项目十分友好。
在本地项目中新建文件夹 .github/workflows
每个程序猿最想做却又最不容易做下去的事,莫过于写博客了。
