深入浅析angular和vue还有jquery的区别

angularjs简单介绍和特点
首先angular是一个mvc框架, 使用mvc解耦, 采用model, controller以及view的方式去组织代码, 会将一个html页面分成若干个模块, 每个模块都有自己的scope, service, directive, 各个模块之间也可以进行通信, 但是整体结构上是比较清晰的, 就是说其代码组织是模块化的, angular的view可能仅仅是一个框架, , 对view的dom操作或者时间监听都是在directive中实现的, 而且一般情况下很少直接去写dom操作代码, 只要你监听model, model发生变化后view也会发生变化, 就是双向绑定机制, angularjs适用于单页面开发
在angularJS中,一个模板就是一个HTML文件 。但是HTML的内容扩展了,包含了很多帮助你映射model到view的内容 。
HTML模板将会被浏览器解析到DOM中 。DOM然后成为AngularJS编译器的输入 。AngularJS将会遍历DOM模板来生成一些指导,即,directive(指令) 。所有的指令都负责针对view来设置数据绑定 。
auguarJS并不把模板当做String来操作 。输入angularJS的是DOM而非string 。数据绑定是DOM变化,不是字符串的连接或者innerHTML变化 。使用DOM作为输入,而不是字符串,是AngularJS区别于其它的框架的最大原因 。使用DOM允许你扩展指令词汇并且可以创建你自己的指令,甚至开发可重用的组件 。angular占用的内存较小, 可以兼容主流的浏览器, 他拥有内置的依赖注入的子系统, 可以帮助开发人员更容易开发, 理解和测试和应用, DI允许你请求你的依赖,而不是自己找寻它们 。比如,我们需要一个东西,DI负责找创建并且提供给我们 。那么AngularJS可以做到 。指令可以用来创建自定义的标签 。它们可以用来装饰元素或者操作DOM属性 。
**vuejs简单介绍特点 **
官网: http://cn.vuejs.org/
vue是一个渐进式的框架, 是一个轻量级的框架, 也不算是一个框架, 他核心只关注图层, 是一个构建数据驱动的web界面,易于上手, 还便于于第三方库或与既有项目整合,也能够为复杂的单页应用程序提供驱动
1. vue的核心
是一个允许采用简洁的模板语法来声明式的将数据渲染进dom
先创建一个后缀名为.html的文件
代码如下:
html: <div id="App"></div>
js里面的

深入浅析angular和vue还有jquery的区别

文章插图
在浏览器窗口上出现的内容: Hello Vue
数据和DOM已经绑定在一起, 验证是否是响应式的, 修改控制台里面app.msg, 你就会看到上面渲染是列子也更新了
出来文本插值, 还可以用绑定DOM 元素属性
深入浅析angular和vue还有jquery的区别

文章插图
js代码:
深入浅析angular和vue还有jquery的区别

文章插图
2. vue指令
指令带有前缀v-, 以表示他们是Vue提供的特殊属性, 他们会在渲染的DOM上应用特殊的响应式行为
v-bind: v-bind : str = "msg" 将这个元素的节点的str属性和vue实例对象的msg属性保持一致
v-if = 布尔值 条件渲染指令, 根据其后表达式的布尔值进行判断是否渲染该元素, v-if只会渲染他身后表达式为true的元素
v-show = 布尔值 和v-if类似,只是会渲染他身后表达式为false的元素, 而且会给这样的元素添加css的代码, style = "display:none"
v-else 必须v-if/v-show指令后, 不然就不会起作用, 如果v-if/v-show的指令表达式为true, 则else就不显示, 如果v-if/v-show指令的表达式为false, 则else元素会显示在页面上
v-for 类似于js的遍历, 用法为 v-for="(item,index) in imgs" :key="index", items是数组, item为数组中的数组元素, index是索引号, key是为了更高效的查找到指定元素
v-on 用于监听指定元素的DOM事件 v-on:click="greet"
3. vue的双向数据绑定
vueJS是使用ES5提供的Object.defineProperty()方法, 监控对数据的操作, 从而可以自动触发数据, 并且, 由于是在不同的数据上触发同步, 可以精确的将变更发送给绑定的视图, 而不是对所有的数据都执行一次检测
vue和angular中, 都是通过在html中添加指令的方式, 将视图元素与数据的绑定关系进行声明
深入浅析angular和vue还有jquery的区别

文章插图
以上的html代码表示该input元素与name数据进行绑定, 在js代码总可以这样进行初始化
深入浅析angular和vue还有jquery的区别

文章插图
代码执行正确后, 页面上input元素对应的位置会显示上面的代码给出的初始值 "请输入你的名字", 由于双向绑定数据已经建立, 因此, 在vm.name="小米", 则input也会更新为小明, 在页面input上输入小明, 则vm.name获取的值为小明


推荐阅读