关于M.js

news/2024/11/30 20:46:04/

      M.js 是文叔来加入小米之后,和团队一起整起来的一套开发框架,其实没有什么创新之处,更多是为了方便开发的同时使得前端的代码量降低。之前用jQ试过,但jq的一个包就80K 着实让人有点受不了。

      M.js的大小一直维持到20K左右,体积小就意味着功能弱,这是必然了。特别是在没有一个良好的架构前提下,更是这样。或许换句话说M.js也许就是有些同学经常所说的仅仅是一些方法的堆砌而且,所以M.js本不应该拿出来炫耀,更不能拿来误人子弟了。但文叔还是觉得M.js也并非完全的一无是处,各位看官且听某一一道来。

      首先,要说是的核心。M.js的核心其实很简单,在我看来就那么几个重要的方法:

  1. M.template  模版方法
  2. M.extend 继承
  3. M.Object M.js的原始Class,它提供了M.js里最常用,也算是最核心的事件驱动机制。
  4. M.override class扩展或叫方法覆盖。

       除了以上几个最主要的,还有一些常用的工具方法,某就不一一表述了。后面某要跟大家重点介绍下第2、第3和第4。

       其次,M.js里面当然有一些必不可少的东西,那就是对Dom元素的操作,这个称之为M.js的Element。M.Element提供了对DOM元素的常规操作,比如html方法获取或设置dom元素的innerHTML等。当然M.Element是继承自M.Object,等等,这里为嘛要继续自M.Object呢?后吧,再埋个坑后面再说。在M.js里面如果你想产生一个新的元素,可以选择这样玩:

        new M.Element("div",{ html:'this is html' , id:'id' , events: { click:function(){ alert(this.html() )} } }).appendTo("body")

         上面这句就在body下产生了一个新div元素,并且当点击这个div的时候会弹出里面的内容。

      最后,M.js必需得提供Ajax的封装啊。所以就有了 M.Net.ajax 。ajax当然是为了方便处理ajax请求的了。

      好吧,总结上面埋的几个坑。第一是为什么有M.Object,貌似就是一个完全无用的废物啊。当然文叔设计这玩意不是拿来做摆设用啊。

      M.Object实际上提供了一套事件驱动机制,你可以对M.Object进行监听任意一个事件,当M.Object的发生了这个事件后就可以执行你的回调。你可以就像对dom元素监听事件一样监听M.Object。

     M.extend ,就是为了让你能方便扩展M.Object,以M.Object为基类,构建你的业务模型。

    至于M.override正如我上面所述,你可以对M.Object进行方法覆盖,当你觉得某个Class的方法不合适的时候就可以用这货把原来不合适的覆盖掉,当然你也可以拿来扩展能力用。

转载于:https://www.cnblogs.com/darrel/archive/2012/04/01/2427850.html


http://www.ppmy.cn/news/562423.html

相关文章

JMX

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。 http://…

jmc、jcmd和jfr介绍

2019独角兽企业重金招聘Python工程师标准>>> jcmd、jmc和jfr介绍jmc分析介绍1jmc分析介绍2 转载于:https://my.oschina.net/u/2269952/blog/1592131

comm.js

/*加载时显示加载loading*/ function doReload(){ document.getElementById("ReLoad").style.display block; document.getElementById("ReLoad").style.left(Math.round((document.body.scrollWidth-300)/2)).toString()"px"; } /*函数功能&am…

js -- jsc

1.去掉创建工程时引进的 xxx.js文件

Linux自动删除tomcat日志文件

查看Linux启动的所有crontab:crontab -l 编辑crontab:crontab -e #!/bin/sh export LANGzh_CN export WEB_HOME/webhome#find [dir] -path "[dir]" -prune -o -mmin 1 -type f | xargs rm -f find ${WEB_HOME}/backup_logs/jsmcc/js8001 -mt…

JCSC

JCSC I. 简介 JCSC是Java Coding Standard Checker――Java编码标准检验程序的简称。JCSC是检查源代码的强大工具,它用来检查高度可定义的代码标准和可能的坏代码。 编码标准包括了对类、接口、区段、参数等等的命名规则,同样也规定了类型&…

JCS

http://www.iteye.com/topic/206406

JSP+ssm计算机毕业设计大学生比赛赛事信息管理8jmqc【源码、数据库、LW、部署】

项目运行 项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&#xf…