深入理解angular2启动项目步骤


Posted in Javascript onJuly 15, 2017

1. 创建项目文件夹

创建一个新的文件夹来保存你的项目,比如一开始有个self就好了

深入理解angular2启动项目步骤

2.安装基础库

首先确保已经安装了node.js

我们使用 npm package manager  来安装需要的开发库和开发工具。

打开终端窗口,输入下面的命令。

npm install

如果在执行npm install命令时没有出现npm ERR!,一起都好。可能会有几个npm WARN消息,这也没有影响。
我们会经常在一连串的gyp ERR!(gyp: generate your project)消息后看到一个npm WARN消息。不用管他们。一个包会使用node-gyp重新编译自己。如果重新编译失败,包会恢复(场使用一个预编译版本),一切正常工作。
只要保证在npm install命令最后面没有npm ERR!就好。

之后再执行下面的命令

npm init -y
npm i angular2@2.0.0-alpha.44 --save --save-exact
npm i live-server --save-dev

这些命令将会创建名为 package.json 的项目文件,安装相应的软件包,现在的 package.json 看起来应该如下所示。

{
 "name": "angular2-getting-started",
 "version": "1.0.0",
 "dependencies": {
  "angular2": "2.0.0-alpha.44"
 },
 "devDependencies": {
  "live-server": "^0.8.1"
 }
}

还需要一个 scripts 的配置节,找到并替换为如下的内容, 如果在你的文件中没有这个配置节, 那就加上好了. 

"scripts": {
  "start": "live-server"
 }

3. 第一个 Angular Component

添加一个名为 app.js 的文件,输入下面的内容。

var AppComponent = ng
 .Component({
  selector: 'my-app',
  template: '<h1>My First Angular 2 App</h1>'
 })
 .Class({
  constructor: function () { }
 });

我们正在创建一个名为 AppComponent 的可视组件,通过使用全局的 ng 命名空间下的 Component 和 Class 方法来完成。

var AppComponent = ng
  .Component({...})
  .Class({...})

Component 方法需要一个包含两个属性的配置对象。selecter 属性告诉 Angular 需要控制名为 "my-app" 的元素。一旦遇到 my-app 元素,Angular 将会创建和显示 AppComponent 实例

template 属性定义了组件的可视外观。在这个示例中,我们使用了内联的模板,我们也可以把这个模板调整到一个模板文件中,然后通过 templateUrl 来关联模板文件的名称来使用它。

我们使用 Class 方法实现这个组件本身的内容,可以定义属性,方法并绑定到这个视图

现在的组件是一个最小化的实现,构造函数中没有内容。在以后的示例中,我们会看到很多有趣的内容。

4. 启动应用

我们需要在应用中做点什么,在 app.js 的最后,添加下面的内容。

document.addEventListener('DOMContentLoaded', function() {
 ng.bootstrap(AppComponent);
});

我们等到浏览器通知我们说,内容已经加载完成了,然后再调用 bootstrap 方法。

bootstrap 方法通知 Angular 使用 AppComponent 作为应用的根来启动应用,

应该可以猜到, 在应用变得复杂的情况下, 我们会创建一个 Component 的树来完成复杂的工作.

 Wrapped in an IIFE

我们不希望污染全局命名空间,但是,现在还不需要应用到命名空间,我们直接使用 IIFE ( Immediately Invoked Function Execution ) 来封装我们的代码。

(function() {
var AppComponent = ng
 .Component({
  selector: 'my-app',
  template: '<h1>My First Angular 2 App</h1>'
 })
 .Class({
  constructor: function () { }
 });
document.addEventListener('DOMContentLoaded', function() {
 ng.bootstrap(AppComponent);
});
})();

 5. 创建 index.html

在项目文件夹中添加名为 index.html 的页面,内容如下:

<html>
 <head>
  <title>Angular 2 QuickStart</title>
  <script src="node_modules/angular2/bundles/angular2.sfx.dev.js"></script>
  <script src="app.js"></script>
 </head>
 <body>
  <my-app></my-app>
 </body>
</html>

在 head 中,我们的应用加载了两个脚本

angular2.sfx.dev.js, Angular2 的开发库

app.js, 我们刚刚开发的脚本。

在 body 中,使用了名为 <my-app> 的元素,这是应用的根的占位,Angular 将在这里显示我们的应用。

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

Javascript 相关文章推荐
jQuery 加上最后自己的验证
Nov 04 Javascript
JS构建页面的DOM节点结构的实现代码
Dec 09 Javascript
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
May 30 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
原生js结合html5制作小飞龙的简易跳球
Mar 30 Javascript
JavaScript各类型的关系图解
Oct 16 Javascript
jquery实现邮箱自动填充提示功能
Nov 17 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
Nov 15 Javascript
js 根据对象数组中的属性进行排序实现代码
Sep 12 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
Aug 07 Javascript
js+html5实现复制文字按钮
Jul 15 #Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 #Javascript
详解ES6之用let声明变量以及let loop机制
Jul 15 #Javascript
vue增删改查的简单操作
Jul 15 #Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 #Javascript
Javascript实现基本运算器
Jul 15 #Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 #Javascript
You might like
用PHP实现验证码功能
2006/10/09 PHP
两个开源的Php输出Excel文件类
2010/02/08 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
php操作MongoDB类实例
2015/06/17 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python回调函数用法实例分析
2015/05/09 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
OpenCV Python实现拼图小游戏
2020/03/23 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
学前教育毕业生自荐信范文
2013/12/24 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
幼教简历自我评价
2014/01/28 职场文书
2015年科普工作总结
2015/07/23 职场文书
《青山不老》教学反思
2016/02/22 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python