网站首页 > 技术文章 正文
来看实现,整个工程是用vivo CRI创建的,vivo点configer里面直接使用了本地的Pluge,配置肯定是有问题的,需要把它改成build的时候再使用。直接看具体的实现,实现的方式比较简单,用的是原声的方式,不需要过解析器,直接执行就行。主要是根据上一章聊的技术解析往上面去填内容,左边有一堆handle,这个就是上一期提到的处理模式里面的内容,一会儿再聊。
先看入口页的代码,首先是RT,RT就是之前说的输出,ca RET return date都可以,当然用语义更准确的名称也没问题。第一个问题,为什么放到最上面?放到下面其他的模块就会找不到,这个大家应该都知道。
接下来就是一个非常基础的iPad plugin,又是一个国内挂载下来的整个比较重要的功能点,这里都打上了注释,使用的生命周期話,根据chunks获取到这些fail,将这些fail交给策略类进行使用,并且还有一个特殊的文件,需要通过size的方式来进行获取,就是index html。
最后根据RT来判断是否包含中文进行提示,或者是直接进行序列化操作,非常基础的内容。直接看under,在获取函段时有一个小技巧,空对象获取一个没有副作用的函数,这样就可以在使用策略的时候不需要判断获取的内容是否为空。这个操作后端用的比较多,设计模式主要是解决for循环过多或者是if过多这两种情况的。
接下来看具体的操作,先从上往下看,首先是CSS焊段里面的技术细节,包括什么是中文匹配,实现跟以前的实现方式肯定是不一样的,有兴趣可以了解一下。进来,先判断整个south当中是否包含中文,但是这段内容不要这样翻译,逼格高一点,它叫御姐西。
比如html,在解析时在html解析前会进行预解析,获取额外的外部引用,然后提前进行加载。这里的思路跟它是一样的,要判断里面的内容是否需要去进行详细的解析,有兴趣可以都打上这个时间,让我们去判断一下时间,看一下说哪一个解析的方式时间是更长的。
然后是下面具体的实线,这种实线就比较无所谓了,打个debug,去疯狂的调试就可以了。但是提醒一下,地理应该用地规的方式,不应该用错区环这种方式来去实现。因为浏览器是支持CSS签套的,这种写法肯定是有问题的,但这里就不处理了,交给大家了。
还有一些CSS里面的内存中的结构,这些就不用管,在底bug中看到什么有什么,然后就用什么,有机会再详聊CSS在内存中的结构。
接下来看hml焊点,它跟CSS其实也是一样的,这里判断的是文本节点中是否包含中文,当然如果要严格一点也需要判断属性,这个节点中是否包含中文依然教给大家,它是水墨功夫,真的是一点难度都没有。
最后是DS的处理,区别就是它有一个设计模式,visit paper里自带了设计模式,就不需要主动的去递归,用起来会比较舒服的一种方式。
最后补充一下在实现时可能遇见的一些技术上的细节,比如expose,它导出的时候需要放到最前面,比如chunks文件可能需要进行一些忽略,因为它可能有自己的国际化的方式,有一个空对象的设计模式,有一个预解析,在真正的解析前还有一个Pre pass,它的效率更高,来判断解析是否有必要进行执行。
有一个中文获取的正则,这个跟新的规范有关,以前的方案跟现在的方案是不一样的,里面包含了很多地规的方式,全部通过复循环写在一个函数里面肯定是不行的,因为里面的节点全部都是可以嵌套的,HTML是可以互相嵌套的,CSS也是可以互相嵌套的,必须使用地规的方式来进行处理。
有一个visit的设计模式,这个是解析处理地规最好的一种设计模式,能够提供就直接用上。最后一定会包括NODE下进行debug的操作,要说写这个东西没有在NODE中进行debug应该是不可能的。
最后给大家留点作业,我写的东西是非常简单的,直接用是不可能的,在组里边简单的使用是没问题的,推广给别人的组别人会怼死你,他们一定需要提供一个非常详细的文档,还会提供各种稀奇古怪的需求,所以需要在里面反复的去进行折腾,折腾出更多的API。
主要就是抽出更多可配置的内容,比如是否要读取CSS的内容,是否要将内容输出格式转换成CSV或者是Excel,包括题写的语言,需要飘红,需要重点强调,需要展示出来的内容更加的漂亮,更加的好看,甚至有可能必须得是用TS的版本都可以。
这些内容就直接交给大家了,就不去处理了,顺便补一下它运行的情况。刚才忘了提这一块,比如现在index的APP里面,这里面包含了一些奇怪的中文,这里面dat里面包含了中文,它是GS里面,template最终也是转换成GS,其实也是一样的,这是属性也没问题,这些全部都是GS里面的内容。
下面这个是CSS中的中文,接下来还有一个是htm苗的中文,比如在生成的public的模板里面,一不小心写上了一些奇怪的中文。
现在看一下整个Plugin的直写的效果。整个脚本已经执行完了,GS当中包含了刚才看到的单个DS,CSS里面包含了CSS的内容,html就是HM的中文。这个文件最终产生输出在半圆点log里面,文件名肯定可以自定义,随便去改。用参数、用配置的方式来去进行调整和修改都是没问题的。
这个结构也没有太大问题,它是可拓展的,CSS、HMR还有GS里面的内容不一样也是没问题的。当然想把里面的内容提取在一起,只要里面的中文也没问题。已经有了这些数据,再教数据如何进行清洗、如何进行转换,无非就是额外再写几个函数的问题。
猜你喜欢
- 2024-10-04 网页变画板,一个 Chrome 插件就能扮演高级前端工程师
- 2024-10-04 「开源」github上star超2万的Vue前端项目vue-element-admin
- 2024-10-04 Vue3 高颜值 中后台管理系统模板 vue后端管理框架
- 2024-10-04 项目复盘:通过动态脚本,实现按需加载语言包
- 2024-10-04 国际化04:转换为excel #前端八股文
- 2024-10-04 基于SpringCloud的enum枚举值国际化处理实践
- 2024-10-04 Springboot启动扩展点超详细总结,再也不怕面试官问了
- 2024-10-04 google前端开发中有哪些优秀实践 google前端开发中有哪些优秀实践方法
- 2024-10-04 一个国际化的前端项目,用vue-cli3从0开始搭建一个多入口
- 2024-10-04 全自动翻译国际化(支持一键翻译多国语言,不入侵业务代码)
你 发表评论:
欢迎- 538℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 535℃Oracle分析函数之Lag和Lead()使用
- 532℃几个Oracle空值处理函数 oracle处理null值的函数
- 530℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 525℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 508℃【数据统计分析】详解Oracle分组函数之CUBE
- 492℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 485℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端密码加密 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)