深入理解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学习笔记之10个原生技巧
May 21 Javascript
js如何判断输入字符串长度
Dec 16 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
Jan 17 Javascript
bootstrap模态框垂直居中效果
Dec 03 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
Sep 25 Javascript
js 显示日期时间的实例(时间过一秒加1)
Oct 25 Javascript
React通过父组件传递类名给子组件的实现方法
Nov 13 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
详解jenkins自动化部署vue
May 14 Javascript
小程序使用watch监听数据变化的方法详解
Sep 20 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
2019/10/22 PHP
js程序中美元符号$是什么
2008/06/05 Javascript
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
React组件refs的使用详解
2018/02/09 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
python笔记(2)
2012/10/24 Python
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
捐助倡议书范文
2014/04/15 职场文书
加强作风建设工作总结
2014/10/23 职场文书
党员活动总结
2015/02/04 职场文书
道德与公民自我评价
2015/03/09 职场文书
升职自荐书
2019/05/09 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL