angular和vue的对比学习之路

vue-ng

打开vue的中文官网一段关于vue的描述

HTML 模板 + JSON 数据,再创建一个 Vue 实例,就这么简单。

那我么再看下angular中文网

AngularJS是为了克服HTML在构建应用上的不足而设计的。HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了。所以我做了一些工作(你也可以觉得是小花招)来让浏览器做我想要的事。

看到这两句引用,心中是否顿时有种感觉,感觉vue会简单易学,angular难学。其实,你是对的,相对来说,如果我们是jqueryER,学起上面两个玩意儿会很难,思想上定性思维会让我们无法摆脱jquery的dom和事件绑定。

所以,让我们暂时抛弃jquery,安静的看着vue和angular装×吧。

先来说下我的经历,本人14年毕业,一直做着前端的工作,现在杭州宇石网络科技,内部花名单名一个白,从最开始的java转到前端,从最基础的切图到html到js,时间说长也不长,整整两年零3个月。说实话,喜欢前端技术的人都是有着年轻的心的人,前端技术更新快,易入门难精通,必须要有一颗年轻的心才能够在这条路上走的更远,相信我也正走在前端大牛的路上,应该不远。

废话太多了,请注意上面略过

js很难,为什么这么说呢,因为我在开始学js的时候看了一个月的js视频,居然一头雾水。然后我不信邪,又重新看了一遍,还是没有看懂,说实话妙味课堂的js教程我看了不下3遍,每一次都还是会不断去跟着code。用原生的js写过几个轮播和tab切换,之后就转战jquery,那个时候感觉jquery好强大,简直大爱。

当时对前端的技术很是感兴趣,每天就看着各种博客论坛,14年和15年的时候网上关于前端两个词特别显眼,node和angular,我自然要去一探究竟,然后就看了很多关于angular的博客,当然都事新手入门什么的,还有菜鸟什么的,反正就是很多,之后就是看api和文档,然后就是各种对着案例code,不出所料,断断续续的几个月里最终我还是放弃了。

一句话,字都认识,看不懂的滋味真的很难受,曾经一度都认为自己不适合写代码,不适合前端。其实,这是必然的,jquery都没有学好,根本没有安静下心来,学习靠的灵感和安静,只有静下心来看,才会有灵感,才能去理解代码。

直到来到杭州宇石网络,公司之前用的是jquery和require,最近boss说我们开始用下angular,让我们看下angular的文档,说实话,我期待和害怕的,我害怕还是看不懂,不过在这之前,我已经看了vue,可能是因为vue真的简单的原因,一天的时间就看懂的了,然后就是就是深入去看api和实例,然后自己写demo,做小项目。真的感觉是一种解放。

之前一直用jquery去操作dom,现在终于可以解放dom了,vue的指令和数据绑定,帮我们做了一切。深有体会的就是用jq渲染一个列表,如果列表的item内容非常丰富,那简直噩梦,js代码里充斥这各种html标签,各种单双引号嵌套。为了解决中问题,不得不去用temple模板插件,让我们也能优雅的写代码比如:

ejs的循环

<%for(var i = 0; i < data.rows.length; i++){%>
    <li>
        <img src="<%=data.rows[i].img%>" style="width:200px;"/>
        <p><a href="/news/<%=data.rows[i].id%>"><%=data.rows[i].title%></a></p>
    </li>
<%}%>

  

终于可优雅的写html了,有点像jsp,后端渲染的模板,其实没错,node+ejs就是这样渲染。

我们再来看下更优雅的代码

vue的循环

<ul>
    <li v-for="item in list">
        <a :href="item.url">{{item.title}}</a>
    </li>
</ul>

angular和vue的渲染差不多

<div class="item" ng-repeat="news in  newsList">
    <a ng-href="#/content/{{news.id}}">
        <img ng-src="{{news.img}}" />
        <div class="item-info">
            <h3 class="item-title">{{news.title}}</h3>
            <p class="item-time">{{news.createTime}}</p>
        </div>
    </a>
</div>

  

angular用的指令是ng-前缀的,而vue是v-,风格其实一样的,数据绑定的方式也是一样的两个{}。

angular和vue挂载数据和方法

var app = angular.module(‘myApp‘, []);
app.controller(‘customersCtrl‘, function($scope) {
    $scope.list = [{},{},{}];
    $scope.method = function(){
        console.log("angular");
    }
})
var V = new Vue({
    el:"#app",
    data:{
        list:[{},{},{}]
    },
    methods:{
        method:function(){
            console.log("angular");
        }
    }
})

可以看出angular所有的数据和方法都是挂载在$scope上,而vue的数据和方法都是挂载在vue上,只是数据挂载在vue的data,方法挂载在vue的methods上,可以看出来,vue的代码风格更加优雅,json格式书写代码,一直是前端最喜欢的方式。

时间: 2024-10-20 04:38:58

angular和vue的对比学习之路的相关文章

angular和vue的对比,几个总结:

首先都是双向数据绑定,前后分离的武器之一,不同点,ng庞大,功能更复杂,有时候用在手机端可能不是很好,而vue就是迷你版的angular,好比,jq和zepto的区别 1.controller,对应到vue里面就是new Vue({el:}),这个el,页面上,ng需要写控制器名字,vue不需要, 2.ng自带http服务,vue没有,需要下载vue-resource,当然这个也不大,就12k左右: 3.ng的指令,对应vue的组件,不理解的可以认为是jq的插件,区别是ng是directive,

vue学习之路 - 4.基本操作(下)

vue学习之路 - 4.基本操作(下) 简述:本章节主要介绍 vue 的一些其他常用指令. Vue 指令 这里将 vue 的指令分为系统内部指令(vue 自带指令)和用户自定义指令两种. 系统内部指令 v-if v-else v-else-if v-for v-on v-bind v-model 以上指令前面都已说明其作用,并且使用过,这里将不再赘述. 下面我们看看 vue 的一些其他常用指令的用法: 在学习 v-text 和 v-cloak 之前我们先看看{{ }}的使用所存在的问题. {{

后端开发者的Vue学习之路(二)

目录 上篇内容回顾: 数据绑定 表单输入框绑定 单行文本输入框 多行文本输入框 复选框checkbox 单选框radio 选择框select 数据绑定的修饰符 .lazy .number .trim 样式绑定 class绑定 对象语法: 数组语法: style绑定 对象语法: 数组语法: 补充: 事件 绑定事件 事件修饰符 按键修饰符 事件绑定的简写 补充: Vue指令 数组操作 官网的话 补充: Vue的元素复用问题 数据残留问题 问题的解决: 首发日期:2019-01-20 上篇内容回顾:

Vue的学习之路

Vue ?啥是Vue?能干嘛? vue 的介绍 Vue 是一套用于构建用户界面的 渐进式框架 ,与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 前端三大框架 Vue: 尤雨溪 渐进式框架 angular:谷歌公司,学习 angular 得需要玩一下 Typescript React: Facebook公司,里面的高阶函数特别多,对初学者不友好 Vue的引入和创建 1.下载 cdn 方式下载 <script src="https://cdn.js

mybatis学习之路----批量更新数据两种方法效率对比

原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方式有两种, 一种用for循环通过循环传过来的参数集合,循环出N条sql, 另一种 用mysql的case when 条件判断变相的进行批量更新 下面进行实现. 注意第一种方法要想成功,需要在db链接url后面带一个参数  &allowMultiQueries=true 即:  jdbc:mysql:

我的javascript学习之路(一)对象之基础

做了2个多月的ajax项目,对js的学习觉得了深入了不少,把自己的一些学习的经验贴出来,希望对初学者有所帮助,也希望大家能指出我的错误之处或者不当之处. javascript 是基于对象的语言,为什么这么说呢,需要仔细思考. js的单根继承体系需要仔细了解,我觉得在js的世界里本身没有类的概念,他只有对象Object,不像java语言本身就有了Object然后又有Class,js中我们可以自己根据他的语言来构件类这一对象,因为没有语言本身的支持,所以方法就各种各样了,但是只要我们掌握了js的本质

3年的学习之路

在我看来一切都是命运的安排,5年自己钱自己高考只考了295(当时大专最低录取分是407),可见我当时成绩到底有多烂,其实连复读的机会都是没有的,小弟最后选择放弃学业,进而开始长达两年的社会生活,11年由于很多原因又一次参加高考,然后进入我们这个学校一所大专,并且阴差阳错的进入了信息系. 编程其实自己是完全不懂的,在进入这个学校之前自己很少接触电脑,就是现在自己的输入方式都和别人不一样,我是一指禅的盲打输入方式,不过还好速度还行,一分钟也能达到140左右,很多人都说这也是个奇葩的存在.开始接触的第

初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)

初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像在给Qt做宣传,在主页上占了一栏的广告,只是,这时,我还没怎么刻意去留意这个陌生的字眼.在我大二上学期中下期时,即大概是2011年的12月,由于自己刚刚完成了汇编语言的入门学习,正要制订下一个学习目标,所以,又开始找起了资料,同时,也再次开始为自己的就业问题担心,于是,开始搜集一些招聘单位的信息,这时候,

linux学习之路之ssh协议

SSH协议 SSH英文全称Secure SShell,是一种安全的协议,也是用于远程登入的. SSH相比telenet而言,具有更高的安全性,使用telent远处登入某台主机,存在着以下两个隐患: 1.用户认证是明文的 2.数据传输也是明文的 因此,处于数据安全考虑,使用SSH来远处登入更安全. SSH有2个版本,SSHv1和SSHv2,SSH1由于无法抵挡中间人攻击,因此,现在很少使用SSHv1版了.所以使用更多的还是SSHv2版,毕竟它要安全多了. SSH是工作在TCP层,端口号是22:te