NEJ框架学习--实现TODOList
NEJ框架的学习最先着手是从NEJ官网教程开始学起的。NEJ教程这个教程里有很多小例子,比如火车快跑,主要是对火车节点添加点击事件,从而控制每个块的移动速度;还有日历控件的实现,aJax请求,文件上传,利用JST模板实现Tab切换,表单填写验证,动画实现等等。这个教程里不仅有源代码的详细过程,还有一些讲解,可以说非常详细。另外,可以通过查API文档和Classes文档进行更多了解。下面从初
NEJ框架的学习
最先着手是从NEJ官网教程开始学起的。NEJ教程
这个教程里有很多小例子,比如火车快跑,主要是对火车节点添加点击事件,从而控制每个块的移动速度;还有日历控件的实现,aJax请求,文件上传,利用JST模板实现Tab切换,表单填写验证,动画实现等等。这个教程里不仅有源代码的详细过程,还有一些讲解,可以说非常详细。另外,可以通过查API文档和Classes文档进行更多了解。下面从初学者角度对NEJ框架的使用做一个总结。
引入NEJ
在使用NEJ之前,需要引入NEJ库,有两种方式:
一种是直接引入NEJ在线地址,代码如下:
<script src="http://nej.netease.com/nej/src/define.js?pro=./"></script>
另一种方式是,将NEJ下载到本地,然后引入本地define.js文件即可
假设文件目录如图所示:
下载的NEJ库在js文件夹中保存。那么引入该库时,如下:
<script src="./js/nej/src/define.js?pro=./"></script>
这里,我想解释一下,src路径中会有?pro=./
?
目前前端项目越来越大,依赖的文件也是越来越复杂,因此为了便于开发和管理,NEJ提供了一个依赖管理系统。因此,NEJ需要进行一些配置,比如预置配置,路径配置,平台配置(NEJ是跨平台的框架)等等,详情见依赖配置。其中,路径配置就有pro配置。项目脚本根路径配置名称为“pro”,文件定义和依赖时可直接使用pro或“{pro}”来表示脚本根路径,此配置信息可以通过外联的define.js路径中的查询串进行配置。如果没有自定义配置则默认相对于当前页面访问路径的“../javascript/”路径。
本人好奇,查询串是什么形式?难道是与我们平时URL的查询参数是一样的形式,即http://www.baidu.com?name=‘liu’&&level=”high”?看了下源码,发现并不是。但是与URL很像。
发现是以’&’来区分多个参数的。
下来是,关于NEJ
的使用,其实他跟jQuery
库有点像,都是引入库之后,就可以使用。而且会有自己定义的一套获取元素节点,设置节点属性,添加事件回调等等操作。
NEJ
采用名字空间的方法,因此在使用这些API
之前,先要设置名字空间。NEJ.P
为设置名字空间的方法。
var _ = NEJ.P,
_e = _("nej.e"), //可以获取元素节点等
_v = _("nej.v"), //可以添加事件处理等
下图是NEJ
框架所有的API
:
常见的节点接口有:
_e._$get(id)
事件处理相关的接口:
_v._$addEvent()
与jQuery
不同的是,NEJ
框架具有模板系统,即可以实现逻辑与视图的分离;动态数据与静态数据的分离等等。
关于模板系统,详细的介绍请点击这里
NEJ
的模板系统主要可以分成两类:一类是基础模板,即我们平时HTML
页面时,想把静态数据(共享页面部分)与动态数据分离时,需要用到的;另一类是资源模板,包括css
资源、js
资源以及html
资源。
对于基础模板,有这么三种:
txt
(文本类型)
这种模板可以用字符串来缓存html结构。可以使用_t._$addTextTemplate()
将其添加到缓存中,也可以用textarea
标签来进行封装。jst
(jst
模板)
这种模板可以用_$add()
来添加到缓存中,或者textarea
标签。同时用_$get()
来添加动态数据ntp
(节点类型模板)
这种模板主要针对结构比较复杂的页面。可以用_$addNodeTemplate()
添加到缓存中,也可以使用textarea
标签。这些模板,添加到缓存中之后,都需要调
_$parseTemplate()
才能使其由字符串变成html
页面。
TODOList实现
有了上面的一些基础,就可以开始TODOList的实现了。
首先,考虑页面如何设计?需要实现哪些功能?
其实页面上,可以是很简单一个input
。如下所示:
实现的功能:
Item
的添加: 考虑是当在输入框敲回车时,就添加到列表中。Item
的删除:每一项点击后面的叉,进行删除。Item
的修改:点击每个条目,修改内容。Item
的查找:在输入框输入要查找的内容,点击后面的查询按钮,返回包含有该关键字的条目。Item
的筛选:点击所有条目下方的各个按钮,可以分别返回所有条目列表,已完成条目列表和未完成条目列表。
所有的实现可以通过对节点添加点击事件处理函数,和利用模板来进行事项列表的渲染。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)