Angular4学习笔记之准备和环境搭建项目


Posted in Javascript onAugust 01, 2017

写在前面的废话1

我用angular的时候还是1.x,属于代码写的很反人类但是angular2还没出的蛮荒年代。我本身是从j2ee转到Android的工程师,也是就是说,我的日常开发语言是Java。突然切换到JavaScript那真是难受的像北极熊同企鹅讲话,更何况后来嫌webstorm太卡而用起了没有提示的sublime(嗯,终于治好了多年顽疾的“从不记函数名症候群”)。经过了一段痛苦不堪的撞墙经历后,总算是开始习惯了。

但我还是想大吼一声,JavaScriptWCNM。

发泄完了说正事。

现在前端的主要框架比较火的是React,Angular虽然背后是谷歌但还是差了那么一点。两者我都用过,说一下我感觉的Angular的特点,以及和React的不同。

首先直接拿Angular和React比较是不公平的。因为Angular是一个什么都有的全家桶,React只是MVC里的V,经常需要搭配一些别的东西使用比如redux(我用的标配是react+redux+router)。.

其次,Angular的特点是绑定,从写代码的角度上说比较符合MVC的概念。4.0里的component就相当于C和V的合体,template或者templateUrl就是view,而class就是所谓的controller。通过在Controller里声明唯一的Model在对应的View里使用,达到解耦的目的。而且Angular还支持注入service,进一步分离业务逻辑。

React的特点其实是虚拟dom,是提速性质的东西。Redux才是逻辑相关,通过唯一的state来解耦,你换state我换值。两者的思路都是很相似的,个人感觉Redux里的Reducer就是Angular里的service。

第三,哪个更好一点?我个人还是喜欢React更多,当然这个主观因素占了很大的层面。写Angular的时候我还是一副怨天尤人的Android程序员,写React的时候就是已经入门的前端开发者了。

写在前面的废话2

一些准备工作,是必须的。

node,一切的基础。

sublime,这个是我个人使用的ide。之前用过webstorm,但是要注册而且多少有点慢。但是用sublime小缺点就是需要自己下插件,webstorm确实功能全一点….subime对React的支持还是蛮好的,但是对Angular的支持还是有点坑。当然,也可能是我插件没装对。

git,本项目已经提交到github。当然,更新程度和我的懒惰程度成反比。其实这个项目我已经完成了,但是因为某种来自东方的神秘力量(直说了吧,就是手贱)又给删掉了…

英文好,非必须。但是英文好可以直接去看angular的官方网站就,传送门,翻墙的话速度快一些。Angular的中文版还停留在2.0,写法和4.0略有不同。

当然4.0和2.0其实也没差多少,至少比2.0和1.x之间的差距要小的多(滚蛋吧scope)

废话说完了,之所以有1有2没有3,是因为我觉得很多时候我只要犯二就可以了。

先说需求-任何没有需求的项目都是耍!流!氓!

需求很简单,也基本上是在模仿超级机器人大战的整备页面(没错我是个钢弹迷而且最近刚好正在玩机战z)。

首先本项目包含3个页面:

1 主页

Angular4学习笔记之准备和环境搭建项目 

上半部展示的是项目说明,下半部筛选出3个机体并进行简单的说明。

2 机体列表页

Angular4学习笔记之准备和环境搭建项目

机体展示,展示所有拥有的机体,包括名称和状态(为了防止图片侵权,用的都是我自己做的高达模型)。

3 机体详情页

Angular4学习笔记之准备和环境搭建项目

从主页和详情页面点击任意一部机体都可以跳转到这个页面,主要介绍机体的各项参数,基本情况以及状态。

环境搭建

首先要有node以及sublime,然后需要用sublime的package manager安装插件typescript。

关于如何安装node、sublime的包管理器并下载插件请参见之前文章里的方法。

其次,可以用sourceTree或者命令行克隆地址:

1)angular给的官方quickstart

https://github.com/angular/quickstart.git

2)我的改编后的版本,好处是集成了webpack和scss,缺点就是写的比较乱而且不知道有什么坑。

https://github.com/stormrabbit/gundam-meister.git

第三,npm install 安装各项依赖。

如果安装失败可以考虑用下cnpm

cnpm:

npm install -g cnpm --registry=http://r.cnpmjs.org
npm install microtime --registry=http://r.cnpmjs.org --disturl=http://dist.cnpmjs.org

假装安装一下

Angular4学习笔记之准备和环境搭建项目

运行命令 npm start

Angular4学习笔记之准备和环境搭建项目

目录结构:

Angular4学习笔记之准备和环境搭建项目

src/main.ts 项目的入口文件 暂时不需要修改

src/index.html 项目展示的html,容器,相当于java的虚拟机,标签是自定义的component的标签化。

src/app/app.module.ts 项目的配置文件,所用的component、注册的service以及以后会有的routing等等都会注册到这里。相当于Android的mainfist.xml文件。

src/app/component/appcomponent/app.component.ts 项目的第一个容器,也是项目的正式入口。相当于java中的main函数,Android中的MainActivity。当然也不是一定要叫这个名字,不过是一种约定俗成。其中template是html页面,相当于view,class相当于controller。

访问http://localhost:3000/,显示页面

Angular4学习笔记之准备和环境搭建项目

环境搭建完毕,hello,world。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 模拟JQuery的Ready方法实现并出现的问题
Dec 06 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
Jun 11 Javascript
JS定时关闭窗口的实例
May 22 Javascript
关于jquery中全局函数each使用介绍
Dec 10 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
Sep 27 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
Oct 28 Javascript
深入理解jquery中extend的实现
Dec 22 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
Jan 09 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
May 28 Javascript
JS实现碰撞检测效果
Mar 12 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
Aug 13 Javascript
jQuery上传插件webupload使用方法
Aug 01 #jQuery
js实现鼠标拖拽多选功能示例
Aug 01 #Javascript
使用Node.js实现RESTful API的示例
Aug 01 #Javascript
关于jquery form表单序列化的注意事项详解
Aug 01 #jQuery
js下拉菜单生成器dropMenu使用方法详解
Aug 01 #Javascript
简述jQuery Easyui一些用法
Aug 01 #jQuery
js图片上传的封装代码
Aug 01 #Javascript
You might like
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
PHP 无限分类三种方式 非函数的递归调用!
2011/08/26 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
Python Sleep休眠函数使用简单实例
2015/02/02 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
使用Python对SQLite数据库操作
2017/04/06 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
可贵的沉默教学反思
2014/02/06 职场文书
继承公证书样本
2014/04/04 职场文书
初三学生个人自我评定
2014/04/06 职场文书
生日宴会策划方案
2014/06/03 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
2016年春节慰问信息
2015/03/25 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
MySQL GTID复制的具体使用
2022/05/20 MySQL