千家信息网

vue.js和angular.js的特点是什么

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容介绍了"vue.js和angular.js的特点是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年01月19日vue.js和angular.js的特点是什么

本篇内容介绍了"vue.js和angular.js的特点是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、Vue与 Angular介绍

1、Vue

对于 vue大家应该都是比较熟悉的,它是有关于构建用户界面的渐进式框架,与其他的重量级框架不同,它是采用自底向上增量开发的设计,而且在vue的核心库中只关注视图层,而且还是比较容易学习的,也方便于和其他的库或者已经有的项目进行整合。另一方面对于vue来说它是有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用。

内容包含:

模块化:目前最热的方式是在项目中直接使用ES6的模块化而且还结合Webpack进行项目打包、组件化:创造单个component后缀为.vue的文件,包含template(html代码)script(es6代码),style(css样式)双向数据绑定:界面的操作能实时反映到数据,数据的变更能实时展现到界面 、指令(v-html v-bind v-model v-if/v-show...)、路由(vue-router)、vuex 数据共享Ajax插件(vue-resource,axios) 。

2、Angular

对于Angular它是一款构建用户界面的前端框架,而且还是一个应用设计框架与开发平台,并且可以用于创建高效、复杂、精致的单页面应用,不仅如此Angular通过新的属性和表达式扩展了HTML,从而可以实现一套框架,多种平台,移动端和桌面端。

内容包含:

MVVM(Model)(View)(View-model)、模块化(Module)控制器(Contoller)依赖注入: 、双向数据绑定:界面的操作能实时反映到数据,数据的变更能实时展现到界面、指令(ng-click ng-bind ng-model ng-href ng-src ng-if/ng-show...) 、服务Service($compile $filter $interval $timeout $http...)路由(ng-Route原生路由),ui-router(路由组件) 、Ajax封装($http)


二、Vue与 Angular 双向数据绑定原理

1、angular.js :脏值检查

angular.js中是通过脏值检测的方式比对数据是否有变更,来决定是否更新视图,而且最简单的方式就是通过 setInterval() 定时轮询检测数据变动,而且angular只有在指定的事件触发时进入脏值检测,如下: DOM事件,譬如用户输入文本,点击按钮等。( ng-click ) XHR响应事件 ( $http ) ,浏览器Location变更事件 ( $location )、Timer事件( $timeout , $interval )、 执行 $digest()$apply()

2、vue :数据劫持

对于vue.js来说则是采用数据劫持结合发布者-订阅者模式的方式,然后再通过Object.defineProperty()来劫持各个属性的settergetter在数据变动时发布消息给订阅者,触发相应的监听回调。

3.代码演示如下:

(1)、vue.js和angular.js的hello world输出:

vue模块代码:

{{ message }}
new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }})

angular模块代码:

{{message}}
var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.message = "Hello world";});

小结:我们通过两者之间的相互比较来看在vue中采用了json的数据格式进行domdata的编写,而且这一种编写风格更加靠进js的数据编码格式,通俗易懂。

(2)、vue和angular的双向数据绑定:

vue的双向数据绑定代码如下:

{{ message }}

new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }})

angular的双向数据绑定代码如下:

{{message}}

var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.message = "Hello world!";});

小结:我们在代码中可以看到vue虽然是一个轻量级的框架,但是提供的API确非常多,而且还有包括一些便捷的指令和属性操作,而且一般vue是指令使用(v-)操作符,相比angular.js指令使用(ng-),其中vue.js还支持指令的简写方式:拿事件来说:click的简写方式是:; 对于属性来说它的简写方式是:

(3)、vue和angular的渲染列表:

vue的渲染列表代码如下:

  • {{ name.first }}
new Vue({ el: '#app', data: { names: [ { first: 'summer', last: '7310' }, { first: 'David', last:'666' }, { first: 'Json', last:'888' } ] }})

angular的渲染列表代码如下:

  • {{name.first}}
  • var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.names = [ { first: 'summer', last: '7310' }, { first: 'David', last:'666' }, { first: 'Json', last:'888' } ]});

    在我们看来其实angularvue的渲染差不多 ,代码如下:

    (4)、vue循环:

    vue循环代码如下:


    三、vue和Angular处理用户输入

    vue处理用户输入代码:

    {{ message }}

    new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }, methods: { reverseMessage: function () { this.message = this.message.split('').reverse().join('') } }})

    Angular处理用户输入代码:

    {{ message }}

    var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) { $scope.message = "Hello world!"; $scope.reverseMessage = function() { this.message = this.message.split('').reverse().join('') }});

    "vue.js和angular.js的特点是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

    0