
获得徽章 0
- 拉取(Pull)和推送(Push)是两种不同的协议,用来描述数据生产者 (Producer)如何与数据消费者 (Consumer)进行通信的。
拉取体系中,数据由消费者从生产者那里获取,生产者不知何时交付到消费者手里。
推送体系中,数据由生产者推动给消费者,消费者不知何时生产者会推动过来。
对拉取来说,生产者是被动的,被请求时产生数据;消费者是主动的,决定着何时去请求数据。
对推送来说,生产者是主动的,按照自己的方式生产数据;消费者是被动的,对推动来的数据做出反应。
对比两个框架对数据的反应式系统的不同:
React对数据的方式是 Pull-based,改了数据(生产),不会自动渲染,需要调用SetState(消费),才会重新渲染
Vue对数据的方式是 Push-based,改了数据(生产),会主动推送,渲染系统自动进行渲染(消费)。展开等人赞过110 - 本来打算写一个cli工具专门来生成vue的目录结构,以便应付上新活动时都要从头搭建的烦恼。
就细看vue-cli3的文档找点灵感,果然发现了好东西,它就在眼前,不放在场景中,竟不知这样设计的妙处。
就是 Preset、Generator, 预设好所需的模板和配置,使团队新建项目目录和规范得到统一。
可以把预设文件放在本地,也可以放在远程仓库,只要大家都用同一套预设配置,每次创建能整齐划一。
不过也要自己写个简易的cli工具,用来选取一些预设配置,例如,选择Typescript还是Javascript来开发。
当然也要考虑已创建项目中某些配置的升级,初步打算是可以update某一个指定的文件。展开等人赞过24 - html2canvas真实采坑记和建议,其实搜一下,都知道:
1. 如果使用 vue 做数据渲染,不要在生成页做太多数据处理的操作,提前把动态数据处理好,否则即便用$nextTick也会有在生成图片时数据不完整的情况
2. 引用CDN上的图片,需要设置useCORS为true,同时要保证所有图片加载完成后再生成,可使用 new Imaage 做预加载和判断是否全部load
3. 用背景background,生成的图片清晰度不够,会模糊;用img引入的方式可避免这个问题
4. 在 iOS系统的13.4.1,无法生成图片,需要退回到1.0.0-rc.4版本,不要使用1.0.0-rc.5版本,issues地址:github.com
5. 可把生成的图片设置透明度opacity为0,盖在原有元素之上,便于在微信保存,不会因为生成的图和原有元素略微有差距,而抖动。
6. 告诉设计师,生成的图片元素不要太多;告诉产品,承载的信息不要太多。简洁大方便于传播才是王道,花里胡哨靠边站。展开等人赞过620 - html2canvas真实采坑记和建议,其实搜一下,都知道:
1. 如果使用 vue 做数据渲染,不要在生成页做太多数据处理的操作,提前把动态数据处理好,否则即便用$nextTick也会有在生成图片时数据不完整的情况
2. 引用CDN上的图片,需要设置useCORS为true,同时要保证所有图片加载完成后再生成,可使用 new Imaage 做预加载和判断是否全部load
3. 用背景background,生成的图片清晰度不够,会模糊;用img引入的方式可避免这个问题
4. 在 iOS系统的13.4.1,无法生成图片,需要退回到1.0.0-rc.4版本,不要使用1.0.0-rc.5版本,issues地址:github.com
5. 可把生成的图片设置透明度opacity为0,盖在原有元素之上,便于在微信保存,不会因为生成的图和原有元素略微有差距,而抖动。
6. 告诉设计师,生成的图片元素不要太多;告诉产品,承载的信息不要太多。简洁大方便于传播才是王道,花里胡哨靠边站。展开评论点赞 - 页面引入特殊字体,需要引入庞大的字体包,会拖慢页面加载速度。页面中用不到所有的中文,最好是按需引入。最近使用了一个包,很方便,可以从大的字体包中抽出所需要的字,组成一个体积小的包。推荐一下:
github.com
等人赞过518 - 遇到ios下,输入框获取焦点,调起手机软键盘,输入完成后,软键盘消失,但整体布局被顶上去,下面留大片空白。最后用window.scrollTo(0,0)解决,但这种方式会将滚动条拉回到顶部,解决并不是太完美,还有别的解决方案吗?赞过163