深入理解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 相关文章推荐
JavaScript Event学习第十章 一些可替换的事件对
Feb 10 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
Jun 29 Javascript
jQuery中insertAfter()方法用法实例
Jan 08 Javascript
jQuery绑定自定义事件的魔法升级版
Jun 30 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
Nov 20 Javascript
JS实现checkbox互斥(单选)功能示例
May 04 Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
Sep 04 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
Oct 28 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中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
php将session放入memcached的设置方法
2014/02/14 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
Javasipt:操作radio标签详解
2013/12/30 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
如何在Angular8.0下使用ngx-translate进行国际化配置
2019/07/24 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
python实现汉诺塔递归算法经典案例
2021/03/01 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
巧克力蛋糕店创业计划书
2014/01/14 职场文书
医院院务公开实施方案
2014/05/03 职场文书
个人评语大全
2014/05/04 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
公司开除员工通知
2015/04/22 职场文书
执行力心得体会范文
2016/01/11 职场文书
党员读书活动心得体会
2016/01/14 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
Python爬虫之爬取某文库文档数据
2021/04/21 Python
python图片灰度化处理的几种方法
2021/06/23 Python
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
2022/04/07 Servers
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android