什么是JX框架

JX框架(Javascript eXtension tools)是模块化的非侵入式Web前端框架,适用于Web Page和Web App项目的开发,特别适合构建和组织大规模、工业级的Web App,腾讯WebQQ、腾讯Q+等产品都是采用JX框架开发,兼容目前所有主流浏览器。
JX框架具有以下特点:

  • 微内核设计,内核可完全分离出来
  • 原生对象零污染,随着Web App越来越复杂,对原生对象的零污染也体现的越来越重要了
  • 模块封包,采用命名空间、闭包等方式建立了模块封包的体系,模块自身做了良好的架构分离,各个模块之间可以自由拼装组合
  • 原子级封装,最大限度保留了代码的执行效率,接近原生的接口,降低了学习门槛
  • 无缝集成各种js框架:jQuery, YUI, Mootools, Prototype.js,Mini,Sizzle,cssQuery,xpath,JSON等等

第一个程序

没错,正如你所想的,我们要写的第一个程序是“hello world”,通过这个程序,你可以对使用JX框架有个概括的了解。

新建一个html文件,在里面加入以下代码:

双击选中源代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
<head>
  <title>Hello world</title>
</head>
<body>
  <input type="button" id="myButton" value="Click me" />
  <script type="text/javascript" src="<a onclick="javascript:pageTracker._trackPageview('/outgoing/pub.idqqimg.com/lib/jx/1.0.1/jx-uiless.js');" href="http://pub.idqqimg.com/lib/jx/1.0.1/jx-uiless.js">http://pub.idqqimg.com/lib/jx/1.0.1/jx-uiless.js</a>" charset="UTF-8"></script>
  <script type="text/javascript">
  Jx().$package("helloWorld",function(J){
    function handler(e){
      alert('Hello world!');
    }
    var el=J.dom.id('myButton');
    J.event.on(el,'click',handler);
  });
  </script>
</body>
</html>

然后保存,我们的“hello world”就完成了。直接看demo

逐行解释

<input type="button" id="myButton" value="Click me" />

我们加入了一个id为“myButton”的按钮(通过id,我们可以很高效地取得一个元素的引用)。

<script type="text/javascript" src="http://pub.idqqimg.com/lib/jx/1.0.1/jx-uiless.js" charset="UTF-8"></script>

我们从腾讯的CDN引入了JX框架的代码,通过charset声明引入代码的编码是UTF-8。我们也可以从自己的路径引入JX,根据需要定制引入的模块,后文会阐述。

Jx().$package("helloWorld",function(J){...});

这一行我们做了两个事情,通过全局方法“Jx()”获得了一个Jx对象,然后调用了Jx对象的$package方法。
$package方法的调用参数为:$package(name, func)
第一个参数是命名空间,第二个参数是一个function,其中的代码会在指定的命名空间中执行(即func的上下文对象this指向name)。JX支持以“.”分隔的多级命名空间,如果这个参数不传,只传一个func参数,则代码的上下文对象this指向window。
我们的function接收了参数J,这是一个Jx对象,我们可以通过这个对象调用Jx的全部方法。

function handler(e){...}

我们定义了一个handler方法。

var el=J.dom.id('myButton');

我们调用了Jx的dom包的id方法,通过元素的id取得元素的引用,并赋值给el。

J.event.on(el,'click',handler);

我们调用了Jx的event包的on方法,给el元素绑定了click事件,指定el被点击后执行handler。
到此,我们的hello world讲解完毕。

获得JX

JX的源码目前开源在Github,可以从http://alloyteam.github.com/JX/#download获取。

下一篇:JX框架入门教程(二)

腾讯Web前端JX框架入门教程(一)相关推荐

  1. 【尚硅谷】Web前端零基础入门HTML5+CSS3基础教程

    [尚硅谷]Web前端零基础入门HTML5+CSS3基础教程 学习视频来源:哔哩哔哩弹幕网(https://www.bilibili.com/video/BV1XJ411X7Ud?spm_id_from ...

  2. 使用腾讯前端Jx框架写自己的方法

    使用腾讯前端Jx框架写自己的方法 <!DOCTYPE html> <html> <head><title>Demo Example</title& ...

  3. html5移动web开发黑马掌上商城_这套web前端与移动开发教程,帮助了众多小白转行就业...

    前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页.随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,完美的动效设计,给用户带 ...

  4. Web前端零基础入门——HTML5

    [尚硅谷]Web前端零基础入门HTML5+CSS3基础教程丨初学者从入门到精通 html入门 index1 > <html><head><title>我是谁? ...

  5. web前端开源框架_9个用于前端Web开发的开源CSS框架

    web前端开源框架 当大多数人想到Web开发时,通常会想到HTML或JavaScript. 他们通常会忘记对访问网站的能力有更大影响的技术: 级联样式表(CSS) . 根据Wikipedia的说法,C ...

  6. Egg框架入门教程合集之插件/工具/教程/专栏/开源项目

    Egg框架入门教程之示例合集 Awesome Egg.js 很棒的清单,精选了最好的Egg.js插件,工具,教程,文章等.欢迎公关! 内容 博客 文章 讲解 会议活动 外挂程式 应用领域 样板 构架 ...

  7. 4步带你从Web前端小白到入门!

    Web前端开发怎么入门,主要都有哪些要素组成?Web前端开发是由网页制作演变而来的,主要由HTML.CSS.JavaScript三大要素组成.专业的Web前端开发入门知识也一定会包含这些内容,下面就给 ...

  8. 80篇各ajax框架入门教程

    AJAX经典入门教程,入门实例,入门代码收藏. *VS2008 Ajax.NET快速入门教程* (2008-3-25) [本站原创]Ajax!?!入门教程之道 (2008-4-13) [本站原创]Aj ...

  9. Tornado框架入门教程

    Tornado框架入门教程 Tornado在知乎广为使用,当你用Chrome打开网页版本的知乎,使用开发者工具仔细观察Network里面的请求,就会发现有一个特别的状态码为101的请求,它是用浏览器的 ...

最新文章

  1. 第三次组织架构变动背后,腾讯AI走向何方?
  2. 英特尔的指令集体系结构_对标英特尔的RISC-V大有可为,CPU三分天下格局可期
  3. 暑假N天乐【比赛篇】 —— 2019杭电暑期多校训练营(第五场)
  4. 雷讯和pix_青海叶陇沟金矿地质地球化学特征及找矿方向
  5. c语言的运算答案,C语言运算符与表达式的练习题答案.doc
  6. mysql 存储过程死循环_pl/sql存储过程loop死循环
  7. 基于深度学习的异构时序事件患者数据表示学习框架
  8. html下拉框传递参数,HTML通过事件传递参数到js详解及实例
  9. Ubuntu把家目录文件夹名称改为英文
  10. opentsdb+grafana监控系按使用总结
  11. mac下mysql无法启动问题
  12. 序列化和反序列化(四)——序列化存储规则
  13. Python3 AES加解密(AES/ECB/PKCS5Padding)
  14. c语言mud游戏制作,MUD游戏制作工具下载
  15. Unable to read entire header,0 bytes read;expected 512 bytes
  16. 好斗or炒作?甲骨文“撕咬”过的那些对手 - 爱上英语题库系统|郭雄飞
  17. matlab 颜色半透明,使用matlab画半透明椭圆
  18. 正在考虑写一本书《中国有所没有围墙的大学,影响了世界几千年》第一章请给个反响...
  19. C++/C语言申请动态空间的详解【new关键字、malloc关键字、delete和free关键字】
  20. keep跑步数据修改器_一只手环就能指导运动?Keep 想做你手腕上的魔鬼教练

热门文章

  1. 基于java+springboot+mybatis+vue+elementui的B2C购物电商平台设计与实现
  2. 树莓派 用现有whl文件安装tensorflow 2(python3.7)
  3. 【OpenCV-Python-课程学习(贾)】 OpenCV3.3课程学习笔记-开篇和简介
  4. marketch 导出html,Sketch设计稿标注必装神器Marketch
  5. python 制作srt字幕
  6. Kubernetes 分层命名空间
  7. 获取所有部门中员工薪水最高的相关信息
  8. 行列式的计算(c++)——公式法(5阶)和递推法(n阶)
  9. 45天搞定华为认证数通方向HCNP-RS
  10. SAP 批量修改工艺路线