前端框架(kraken、Express、Node、MVC)
You know my loneliness is only kept for you, my sweet songs are only sang for you.
前端框架相关知识记录。
kraken:
Kraken基于grunt和Express,相比而言,它提供了更加稳健的功能合集,支持本地化、环境配置、更加注重应用程序安全等。这里解释下,Express是Node.js的一个MVC开发框架,支持jade等多种模板(可以采用ejs),是目前Node.js上最流行的Web开发框架,通过提供一系列强大特性帮助开发者创建各种Web应用。
Express:
Node.js的MVC框架
MVC框架:
MVC只是一种思想,并非编程规范。按照三类不同的功能来划分代码模块的思想。
模型层(model)、视图层(view)、控制层(controller)
代表性的MVC框架:Vue.js、React.js、Angular.js、backbone.js
MVC框架分析:
优点:灵活度比较高、可以实现model和view比较好的分离
- 可以由不同的人并行推进对model和view的内部实现,而不关心对方怎么实现,只管负责自己内部的实现并抛出事件,并约定好通过事件所传递的数据的格式即可,就像前端和后端的分离那样。
- 从容应对灵活多变的业务需求,只要在controller中修改所绑定的事件名和实现相应操作的回调函数即可。controller要做的就是做决定:决定在哪个事件被抛出时,调用实现哪个操作的方法。这就是它为什么叫做controller的原因。而它只做决定,不做实现,提现了“We need thin controller”的原则。
- 可以很方便的卸载、装载以及修改各个特性。装载:在model/view中提供实现该特性的方法,在controller中把该方法的调用和调用时机(即事件)绑定起来即可。卸载:解除事件绑定即可。
缺点:需要controller层绑定事件(需要引入中间层)
前端框架:
分为 JS框架 和 UI框架
JS框架:
- jQuery库
- Zepto ( 类似jQuery库 )
- Node.js( 服务端 )
- Angular.js( 模型,scope作用域,controller,依赖注入,MVVM ):前端MVC
- require.js:AMD,commonJS
- Seajs:CMD,commonJS
- Vue.js:MVVM
- backbone.js
- React.js:创建自定义标签,根据ID注入标签
- Ionic.js
UI框架 :
- Bootstrap
- Pure
- easyUI
构建工具:
grunt & gulp
css预处理(扩展)语言:
sass & less
JavaScript模板库(JavaScript模板引擎):
EJS 、jade(Node模板引擎)
Node.js
Node.js是一个JavaScript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引擎执行JavaScript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行的更好。
Node.js是一个基于ChromeJavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动,非阻塞 I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
简单的说Node.js就是运行在服务端的JavaScript。
注:JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,一般会附带在网页浏览器之中。
Google V8:由Google丹麦开发,是Chrome浏览器的一部分。
前端框架(kraken、Express、Node、MVC)的更多相关文章
- spring mvc 及NUI前端框架学习笔记
spring mvc 及NUI前端框架学习笔记 页面传值 一.同一页面 直接通过$J.getbyName("id").setValue(id); Set值即可 二.跳转页面(bus ...
- vue 前端框架
什么是vue.js 1.vue是目前最火的一个前端框架,react 是最流行的前端框架(react除了开发网站,还可以开发手机APP,vue语法也是可以进行手机app开发的,需要借助于weex) 2. ...
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...
- 框架开发之——AngularJS+MVC+Routing开发步骤总结——5.14
1.延续MVC的观念:包括路由映射的编写,Controller的内容,具体View页面js的分离. 2.结合AngularJS做前端,后端使用Node.Js的写法,引入MVC框架,进行快速的开发. 步 ...
- 2019年Web前端最新导航(常见前端框架、前端大牛)
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 前言 本文列出了很多与前端有关的常见网站.博客.工具等,整体来看比较权威.有些东西已经 ...
- 目前比较火的前端框架及UI组件
看到的一篇总结性的文章,收藏一下,感兴趣的可以自己看看,哪些是已经会的,哪些是没听说过的,哪些是一知半解的,都可以稍微看看. 一.前端框架库: 1.Zepto.js 地址:点击打开链接 描述:Zept ...
- 【转】前端框架天下三分:Angular React 和 Vue的比较
前端框架天下三分:Angular React 和 Vue的比较 原文链接:http://blog.csdn.net/haoshidai/article/details/52346865 前端这几年的技 ...
- (转)2018几大主流的UI/JS框架——前端框架 [Vue.js(目前市场上的主流)]
https://blog.csdn.net/hu_belif/article/details/81258961 2016年开始应该是互联网飞速发展的几年,同时也是Web前端开发非常火爆的一年,Web ...
- 0前端 框架 库_千万别去碰js呀 混合APP_webAPP_美工 选有类型的语言,比如TypeScript
常用知识点,技巧 添加库到本地: (举例 element-ui) 用npm命令行把包下载到本地 在电脑里找到资源文件,比如 C:\Users\XiaoCong\AppData\Roaming\npm\ ...
随机推荐
- JS与Android交互
一.Android调用JS 2种方法 1.通过WebView的loadUrl 2.通过WebView的evaluateJavascript
- HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现
HashMap:底层是一个数组+链表实现 LinkedHashMap:底层是Hash表和链表的实现 ConcurrentHashMap:基于双数组和链表的Map接口的同步实现 ArrayList:底层 ...
- Linux Centos6.5 SVN服务器搭建 以及客户端安装
转载:http://www.cnblogs.com/mymelon/p/5483215.html /******开始*********/ 系统环境:Centos 6.5 第一步:通过yum命令安装sv ...
- 01_hello world
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 数据库操作API 或万能的双下划线
数据库操作API: 类型 描述 exact 精确匹配: polls.get_object(id__exact=14). iexact 忽略大小写的精确匹配: polls.objects.filter( ...
- php版本升级导致openssl无法使用
也就是call to undefined function openssl错误: 把extension前面的注释去掉,甚至把“libeay32.dll和ssleay32.dll文件复制并替换到apac ...
- 对于两个初始时设置为Sensor的刚体,不会触发preSolve和postSolve
Main.as package{ import Box2D.Common.Math.b2Vec2; import Box2D.Dynamics.b2Body; import Box2D.Dynamic ...
- 删除node_modules文件夹
老版本的npm对有node_modules文件夹太长的问题,新版本就没有这个问题.2.7? npm install rimraf -g rimraf node_modules
- ANg-梯度下降算法
概念 为了解决线性回归问题,我们也用梯度下降算法. 算法逻辑如下: 对于线性回归模型中例子,梯度下降可以如下: 算法 实际上梯度下降可有通过求导.这里的符号":="是赋值的含义 有 ...
- Numpy知识(三)
ndarray的花式索引. 正负数索引,正数就是从0开始的下标正向寻找,负数是-1开始的负向寻找. arr[[1,5,2,6],[0,3,1,2]]:拿取arr[1,0],arr[5,3],arr[2 ...