Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
anima-yocto
Advanced tools
Yocto is a javascript dom library for mobile from Anima, rebuild and simplify some modules from Zepto.
谢天谢地,文档终于来了,让你们久等了:)
点击查看版本记录
Yocto is a javascript dom library for mobile from Anima, rebuild and simplify some modules from Zepto.
Yocto是Anima官方提供的dom操作基础库,它的根基来源于Zepto,同时在Zepto的基础上做了很多的优化和重构。
Zepto = 10^-21;
Yocto = 10^-24;
Yocto解决了哪些问题?跟Zepto有什么区别呢?
$ spm install anima-yocto --save
var $ = require('anima-yocto');
$.html('hello yocto');
Yocto
,主要由下面这4大部分组成(zipped 10.3kb):
Yocto lite
,则只由下面这2部分组成(zipped 6.5kb):
其中,yocto-plugin模块,是负责补齐yocto与zepto的差异API的shim模块,是可选的,默认并没有包含在yocto内部,需要手动引入。推荐你阅读下面的API章节,了解Yocto与Zepto的差异,再决定是否需要引入yocto-plugin模块。
图片最上方的yocto modules部分,是yocto的外围扩展模块们,他们往往是依赖于yocto的fn机制扩展出来的模块,或者与基础库联系非常紧密的模块。相关模块有 fx、gesture、data、deferred等…
因为Yocto是源自Zepto(1.0)的,因此绝大部分的API与Zepto保持一致
。如果你不了解Zepto,那么可以先到Zepto官网进行相关了解。
注意,这里只列出与Zepto不一致的部分
:
API | 修改动作 | 影响版本 | 备注 |
---|---|---|---|
$.isEmptyObject | 移除$.isEmptyObject方法 | All | 官网无公开,core内无引用 |
$.fn.closest | 移除,转移至plugin | All | 使用率低 |
$.fn.empty | 移除,转移至plugin | All | 使用率低 |
$.fn.pluck | 移除,转移至plugin | All | 使用率低 |
$.fn.wrap | 移除,转移至plugin | All | 使用率低 |
$.fn.wrapAll | 移除,转移至plugin | All | 使用率低 |
$.fn.wrapInner | 移除,转移至plugin | All | 使用率低 |
$.fn.unwrap | 移除,转移至plugin | All | 使用率低 |
$.fn.scrollLeft | 移除,转移至plugin | All | 使用率低 |
$.fn.position | 移除,转移至plugin | All | 使用率低 |
$.fn.offsetParent | 移除,转移至plugin | All | 使用率低 |
$(htmlString, attributes) | 移除 $(htmlString, attributes) 的api方法支持 | All | 该方法为zepto的1.0+方法,使用很少 |
$.fn.contents | 移除,contents已经转移至plugin | All | 该方法为zepto的1.0+方法,使用率较低 |
$.fn.offset | 移除,去除offset的coordinates参数 | All | 该方法为zepto的1.0+方法,使用率较低 |
除此之外,还有一些不影响使用的优化/改动点,详细信息,请访问yocto-core优化方案查看。
API | 修改动作 | 影响版本 | 备注 |
---|---|---|---|
$.fn.bind | 移除 | All | 官方建议废除 |
$.fn.unbind | 移除 | All | 官方建议废除 |
$.fn.delegate | 移除 | All | 官方建议废除 |
$.fn.undelegate | 移除 | All | 官方建议废除 |
$.fn.live | 移除 | All | 官方建议废除 |
$.fn.die | 移除 | All | 官方建议废除 |
如需详细了解,请访问yocto-event文档查看详情。
API | 修改动作 | 影响版本 | 备注 |
---|---|---|---|
ajaxStart 全局事件触发 | 移除 | All | 未公开 |
ajaxStop 全局事件触发 | 移除 | All | 未公开 |
require(‘anima-yocto-ajax/miniAjax’)
或require(‘anima-yocto-ajax/jsonP’)
如需详细了解,请访问yocto-ajax文档查看详情。
新增模块,提供tap
事件,用于解决移动端click
事件300ms延迟以及点透等问题。
相比Zepto
的tap
事件,Yocto
里面的tap
事件会阻止原生的click
事件防止点透的发生,同时会根据点击的元素去触发对应的默认事件,比如label,input等元素。
用法和原生事件一样:
var $ = require(‘anima-yocto-touch’);
$(‘body’).on(‘tap’, function(){});
$(‘body’).tap(function(){});
如需详细了解,请访问yocto-touch文档查看详情。
其实没有什么技巧,如果你spm玩得足够熟练,那么这部分内容对你而言就没什么价值:)
当你的业务中并没有依赖太多的Yocto功能 —— 例如做一个活动页,只需要用到一个点击事件和操作一些dom,那么你只需要引用yocto-lite
即可。
var $ = require('anima-yocto-lite');
这样可以避免引用ajax和touch模块,减少了很多体积。
如果你的业务连event事件模块都用不到,那么你完全可以单独只引用yocto的4大模块之中的yocto-core
模块:
var $ = require('anima-yocto-core');
如果你的业务是基于rpc
的,根本用不到ajax,其他的都用到了,怎么办?你可以如下面方式拼装:
var $ = require('anima-yocto-lite'); //yocto的lite版中包含了core和event模块
require('anima-yocto-touch');
或:
var $ = require('anima-yocto-core');
require('anima-yocto-event');
require('anima-yocto-touch');
甚至:
var $ = require('anima-yocto-touch'); //所需的依赖(core和event)会自动安装
注:因为anima-yocto-touch的依赖项已经在该模块内配置好了,所以引用了yocto的touch模块会自动引入core和event模块。 在spm中,重复引用相同版本的同一模块是会自动去重的,不会重复打包,请放心。
在看这部分内容之前,推荐你了解下semver,目前spm已经全部支持semver格式,可以按照语义化的格式书写依赖版本号。例如在package.json中配置:
"anima-yocto":"~1.1.0"
意为,在每次spm install的时候,自动安装yocto的 >1.1.0
且 <1.2.0
的版本。
有很多组件(如carousel)都已经升级为semver格式,在install时会自动获取yocto的最新小版本。
那么问题来了,而当你的业务代码中同时引用了carousel和yocto,在一段时间后,可能就会造成如下情况:虽然carousel里引用了最新的yocto,而项目内直接引用的yocto依然是老版本,结果就是出现了多个yocto版本的共存冗余。
要解决这个问题,最方便的做法是,如果项目内引用yocto,也配置成semver的格式。这样就可以永远保持当前引用的yocto的小版本号永远是最新的,同时也是向下兼容的。直到yocto的版本升到1.2.0。
Yocto目前并不是最完美的dom库,依然有很多不完善的地方。目前已知的问题如下:
当然,问题不止这一点,如果你也有兴趣,欢迎一起加入Yocto的更新维护团队!
没有下面这些人和组织,就没有现在的Yocto。
form your dear Yocto.
FAQs
Yocto is a javascript dom library for mobile from Anima, rebuild and simplify some modules from Zepto.
The npm package anima-yocto receives a total of 0 weekly downloads. As such, anima-yocto popularity was classified as not popular.
We found that anima-yocto demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.