摘要: weex-vue-framework向原生端发送渲染指令,最终渲染生成的是原生组件。WXBridge 是 weex 实现的一种 js 和 客户端通信的机制。客户端设计一套 JS Bridge,让 native 代码可以和 JavaScript 引擎相互通信,Weex源码转换成JS Bundle,异步更新 阅读全文
posted @ 2023-04-09 21:13 zhoulujun 阅读(165) 评论(0) 推荐(0) 编辑
摘要: react native还原UI界面跟写web react 差不多,布局及样式有css基础在StyleSheet里面写一样。其实跟Android写xml大同小异而已。只是react native动画方面,设置起来还是风格迥异 阅读全文
posted @ 2023-04-09 21:08 zhoulujun 阅读(44) 评论(0) 推荐(0) 编辑
摘要: React是一个纯JS的UI库,只能干HTML/CSS/JS 提供的Web服务(新的H5 API不一定支持), React-Native厉害在于它能打通JS和Native Code, 让JS能够调用丰富的原生接口,充分发挥硬件的能力, 实现非常复杂的效果,同时能保证效率和跨平台性。 在一定程度上,R 阅读全文
posted @ 2023-04-09 20:57 zhoulujun 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 前端的性能优化有诸多有迹可循的理论和方法,比如 Yahoo!性能军规(Best Practices for Speeding Up Your Web Site)、Google Pa 阅读全文
posted @ 2023-04-09 20:53 zhoulujun 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 解决文本文档的协同编辑有两种方案,一种是 Google Doc 使用的 Operational transformation (OT),还有一种就是 Atom teletype 使用的 Conflict-free replicated data type (CRDT)。 阅读全文
posted @ 2023-04-09 20:28 zhoulujun 阅读(158) 评论(0) 推荐(0) 编辑
摘要: Google Wave“领先于时代”,而谷歌并没有有效地解释该服务的真正好处。Google Wave是一个工具 ,也是一个平台 、还是一个协议 。其架构的核心是操作转换 (Operational Transformation,OT),这是一个支持并发控制的理论型框架。 阅读全文
posted @ 2023-04-09 20:23 zhoulujun 阅读(25) 评论(0) 推荐(0) 编辑
摘要: SaaS——软件即服务(Software as a Service)的出现改变了传统使用软件转变为使用服务。 SaaS与传统软件的最大区别是,前者按年付费租用服务,后者一次买断。这貌似只是“报价方式”的区别,实际上这是一个根本性的变化,这带来的是对服务模式、销售模式、公司价值等多维度的根本影响。 传 阅读全文
posted @ 2023-04-09 20:10 zhoulujun 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 了解其有关Port方面的设计,从而了解究竟如何能移植WebKit到自己的应用中。WebKitPort方面的内容是可以很广的,例如可将不同的图形库、网络库与WebCore集成,提供不同的Port接口供外部程序使用等,例如同样在windows平台上可以运 阅读全文
posted @ 2023-04-09 20:02 zhoulujun 阅读(19) 评论(0) 推荐(0) 编辑
摘要: WebKit作为一个浏览器引擎,其中Javascript实现包括JavaScriptCore和V8,为了能更全面的了解WebKit,我们需要深入的了解Javascript实现的基 阅读全文
posted @ 2023-04-09 18:33 zhoulujun 阅读(75) 评论(0) 推荐(0) 编辑
摘要: webKit作为一个相对独立的浏览器引擎在Safari、iPhone、Adobe AIR等中都有应用,非常值得大家深入的研究研究。WebKit主要包括三个部分WebCore、JavascriptCore及Ports部分,让我们先从WebCore部分出发吧 阅读全文
posted @ 2023-04-09 18:28 zhoulujun 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 作为一个广受好评的浏览器引擎,其网页布局的质量(包括速度、效率、符合标准度等)往往是其关键,那么WebKit究竟是如何布局网页上的所有元素(包括滚动条、文字、图片、按钮、下拉框等)呢?其主要数据结构及流程都包括哪些呢?其布局的基本概念及标准都有哪些呢?下面分别介绍WebKit对其实现及运用。我们首先 阅读全文
posted @ 2023-04-09 18:23 zhoulujun 阅读(80) 评论(0) 推荐(0) 编辑
摘要: Rhino 是一种动态类型的、基于对象的脚本语言,它可以简单地访问各种 Java 类库。Nashorn是一种单层的纯编译型JavaScript实现。所有JavaScript代码在首次实际执行前都会被编译为Java字节码交由JVM执行。 阅读全文
posted @ 2023-04-09 18:15 zhoulujun 阅读(222) 评论(0) 推荐(1) 编辑
摘要: V8的性能远高于当时所有其它JavaScript引擎,各大JavaScript引擎的实现者都坐不住了,像打了鸡血似的使劲优化优化再优化。当代JavaScript引擎之间有许多共通的实现技巧。多数优化会对JavaScript程序的行为做一定猜测(speculate) 阅读全文
posted @ 2023-04-09 18:07 zhoulujun 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 其实早期的两个主要的JavaScript引擎实现,一直在用mark-and-sweep GC。Java写的Rhino一度能比用C写的SpiderMonkey跑得还快,因为Rhino得益于JVM里优秀的JIT编译器和GC,而SpiderMonkey还在用简易的解释器和GC。 阅读全文
posted @ 2023-04-09 18:01 zhoulujun 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 优化JS的执行效率 降低样式选择器的复杂度 避免大规模、复杂的布局 尽可能避免触发布局 避免强制同步布局事件的发生 避免快速连续的布局 简化绘制的复杂度 减小绘制区域 优先使用渲染层合并属性 控制层数量 节流 抖动 阅读全文
posted @ 2023-04-09 17:49 zhoulujun 阅读(22) 评论(0) 推荐(0) 编辑
摘要: Chrome支持以下几种进程模型:Process-per-site-instance Process-per-site Process-per-tab Single Process。Browser只有一个,主控整个系统的运行,管理Chrome大部分的日常事务;而Renderer则可以有多个,主要负责页面的渲染和显示。 阅读全文
posted @ 2023-04-09 17:40 zhoulujun 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 无法科学上net,如何安装插件?国产插件其实基本都是皮包chrome,可以安装插件后导出。自己chrome已经安装的插件也可以备份。这里提供一份本人备份打包的插件列表,基本满足日常开发需求 阅读全文
posted @ 2023-04-09 17:29 zhoulujun 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 本文回顾浏览器的发展历史:作为前端老鸟,从IE的6、7、8开始做前端,各种兼容性折磨死人。js还好有了jQuery。chrome出来后,真是救苦救难,解救程序员的于水火。但是可恶的boss还是要求兼容ie6,7。 阅读全文
posted @ 2023-04-09 17:22 zhoulujun 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 回流与重绘,当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流(reflow)。每个页面至 阅读全文
posted @ 2023-04-09 17:13 zhoulujun 阅读(43) 评论(0) 推荐(0) 编辑
摘要: button {&-ok {}}, button { &:after {}} 这一类用法是非常熟悉的。p, a, ul, li { & + & {border-top: 0;}} 这一类组合就可以吓死人咯。&符号还可以改变 css类的输出顺序。如 button{a&{}} 阅读全文
posted @ 2023-04-09 16:56 zhoulujun 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 从形式上来说,CSS3 标准自身已经不存在了。每个模块都被独立的标准化。但是每个模块都可以追溯其来龙去脉。从印刷出版到互联网的兴起,这期间板式设计可以构成一篇雄文。 阅读全文
posted @ 2023-04-09 16:10 zhoulujun 阅读(33) 评论(0) 推荐(0) 编辑
摘要: vue2异步加载之前说过,vue3还是之前的方法,只是把 i18n.setLocaleMessage改为i18n.global.setLocaleMessage 但是本文还是详细说一遍: 为什么需要异步加载语言包 主要还是缩小提代码包,没有按需加载前,语言包内容太多 好几屏幕全部是,虽然从webpa 阅读全文
posted @ 2023-03-18 18:05 zhoulujun 阅读(238) 评论(0) 推荐(1) 编辑
摘要: 面向过程(PO) 面向过程是随着VB一起来到我的世界,那个时候会的非常有限,感觉能把程序写出来自己就非常棒了,VB是做那种可视化界面,在工具栏拖个框框放到面板上,然后就在各个事件上写完整的逻辑,什么封装,抽象,继承一概不懂,就有一种一个方法把实现过程需要的逻辑都罗列了,面向过程分析的是步骤。这样说过 阅读全文
posted @ 2023-03-18 17:59 zhoulujun 阅读(290) 评论(0) 推荐(1) 编辑
摘要: 之前写的《webpack性能优化(0):webpack性能优化概况-优化构建速度》、《webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载》 如果使用vue-cli,默认生成的vendor.js文件会非常大。这个时候需要进行拆包。其实打包输出后,都可以用如下工具瞧瞧包依赖情况。 we 阅读全文
posted @ 2023-03-18 17:53 zhoulujun 阅读(451) 评论(0) 推荐(0) 编辑
摘要: webpack ensure相信大家都听过。有人称它为异步加载,也有人说做代码切割,那这个家伙到底是用来干嘛的?其实说白了,它就是把js模块给独立导出一个.js文件的,然后使用这个模块的时候,webpack会构造script dom元素,由浏览器发起异步请求这个js文件。 这样解决整个项目打包成同一 阅读全文
posted @ 2023-03-18 17:50 zhoulujun 阅读(310) 评论(0) 推荐(0) 编辑
摘要: webpack本质上是一种事件流的机制,它的工作流程就是将各个插件串联起来,而实现这一切的核心就是Tapable,webpack中最核心的负责编译的Compiler和负责创建bundles的Compilation都是Tapable的实例。 Webpack 可以认为是一种基于事件流的编程范例,内部的工 阅读全文
posted @ 2023-03-18 17:42 zhoulujun 阅读(63) 评论(0) 推荐(0) 编辑
摘要: Tree-shaking 最早由打包工具 Rollup 提出 DCE 作用于模块内(webpack 的 DCE 通过 UglifyJS 完成),而 Tree-shaking 则是在打包的时候通过模块之间的信息打包必须的代码。 Webpack 从 2 开始也支持 Tree-shaking,对于一个模块 阅读全文
posted @ 2023-03-18 17:39 zhoulujun 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 热更新,主要就是把前端工程 文件变更,即时编译,然后通知到浏览器端,刷新代码。 服务单与客户端通信方式有:ajax 轮询,EventSource、websockt。 客户端刷新一般分为两种: 整体页面刷新,不保留页面状态,就是简单粗暴,直接window.location.reload()。 基于WD 阅读全文
posted @ 2023-03-18 17:33 zhoulujun 阅读(186) 评论(0) 推荐(0) 编辑
摘要: vue3溢出文本tooltip或title展示解决方案—如何获取文本宽度 Author:zhoulujun Date:2023-03-06 Hits:5 解决文本溢出,鼠标悬浮展示tooltips,要解决2大难题。第一个是解决文本宽度的问题。毕竟 若果text-overflow: ellipsis生 阅读全文
posted @ 2023-03-18 17:21 zhoulujun 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 首先,不管采用何种开发模型。软件开发都至少具有以下的周期,包括: 需求获取/分析(系统分析、软件分析) 设计 实现 测试 发布(运行) 维护 既然所有的开发模型都具有相同的开发周期,那不同的开发模型的差别从哪里体现呢?或者说不同的开发模型在指导开发过程中的差异点在哪里? 我理解的差别点主要体现在: 阅读全文
posted @ 2023-03-18 16:50 zhoulujun 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 什么是 SDK? SDK 全称 Software Development Kit,广义上的 SDK 是为特定的软件包、软件框架、硬件平台、操作系统等建立应用程序时所使用的开发工具的集合(在 iOS 项目中,SDK 也被称为库)。 SDK 的全称是 Software Development Kit,翻 阅读全文
posted @ 2023-03-18 16:42 zhoulujun 阅读(1159) 评论(0) 推荐(0) 编辑
摘要: 插件实践方案 其实插件你就把它当一个组件来用就好。用起来就是异步组件加载。 vue异步组件加载,看官方文档:https://cn.vuejs.org/v2/guide/components-dynamic-async.html react异步组件加载,其实更好办:在Suspense里面 渲染异步组件 阅读全文
posted @ 2023-03-18 16:35 zhoulujun 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 前端页面资源如何分享,常见的有iframe,其次是js-sdk。这两类的在地图类工具经常用。微前端是最佳比较火的方式。本篇是他们的对比分析。 下一篇讲 BK-VISION如何在让用户自由选择 iframe/JS-SDK/微前端的模式共享 iframe iframe嵌入是目前使用很广泛的一种嵌入方案, 阅读全文
posted @ 2023-03-18 16:23 zhoulujun 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 基础代码的复用往往比较简单,但是业务代码的复用通常是困难的,如果没有特殊的手段去治理项目会逐渐发展为难以维护的巨石应用,按照维基百科记载,代码的复用形式主要有三种,程序库,应用框架,设计模式 程序库 前端业务代码在程序库的体现主要是通过业务组件,稍微大点的团队都有自己的业务组件库,但是我去过的很多团 阅读全文
posted @ 2023-03-18 16:16 zhoulujun 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 根据《插件式可扩展架构设计心得》精读扩展版 怎么实现插件化模式 插件模式本质是一种设计思想,并没有一个一成不变或者是万金油的实现。但我们经过长期的代码实践,其实已经可以总结出一套方法论来指导插件体系的实现,并且其中的一些实现细节是存在社区认可度比较高的“最佳实践”的。 插件化架构定义 插件化架构又称 阅读全文
posted @ 2023-03-18 16:11 zhoulujun 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 插件化架构可以链接多个子系统,而做到开闭原则。即插件核心和接口不变,系统可以持续接入新插件,来丰富系统的功能。可视化平台各种可视化图表展示功能不一,要想满足给个平台需求,只有走插件化道路 阅读全文
posted @ 2023-03-18 16:03 zhoulujun 阅读(88) 评论(0) 推荐(0) 编辑
摘要: storybook入门手册,手把手教你构建一个项目来尝鲜storybook 阅读全文
posted @ 2023-03-18 15:57 zhoulujun 阅读(66) 评论(0) 推荐(0) 编辑
摘要: storybook添加全局样式比较简单,但是添加全局变量非常麻烦。比如是直接修改webpackFinal: async (config, { configType }) 里面的config 阅读全文
posted @ 2023-03-18 12:43 zhoulujun 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 首先我们查看官方文档:https://storybook.js.org/docs/vue/writing-docs/doc-block-argstable#customizing 官方的例子么有看到v-model如何处理,数组、对象等复杂属性定义。 这里一个是props的定义,一个是Controls 阅读全文
posted @ 2023-03-18 12:37 zhoulujun 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 一般安装完,官方默认给配了actions,插件和links插件,本篇文章把story的插件介绍一下。 阅读全文
posted @ 2023-03-18 12:33 zhoulujun 阅读(34) 评论(0) 推荐(0) 编辑