本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 3368|回复: 1
打印 上一主题 下一主题

[Angular2]创建简单的Angular2 Components

[复制链接]
跳转到指定楼层
1#
发表于 2016-7-20 17:10:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 悟箜 于 2016-7-30 14:31 编辑

距离上次我们快速搭建Angular2开发环境已经好几天了,不知道大家有没有轻松加愉快的搭建起开发环境,既然一切都已就绪,那就让我动手写点东西吧~~~

今天我们就写几个简单的components,我们先来看看目录结构变化,我们主要创建了两个文件夹:footer 和 header(主要存放我们的两个components),还有就是一个Angular2的LOGO
structure1.PNG (20.14 KB, 下载次数: 2)

我们先看一下Header component,直接上代码:可以发现其实很简单,只需要指定简单的template与style的路径, selector 就是我们的header将要存在的地方,替换<wk-header>标签
  1. import {Component} from '@angular/core';

  2. @Component({
  3. moduleId: 'app/common/components/header/',
  4. selector: 'wk-header',
  5. templateUrl : `header.html`,
  6. styleUrls: ['header.css']
  7. })
  8. export default class HeaderComponent {}
复制代码
header.html:
  1. <header>
  2. <div class="header">
  3. <img src="app/common/assets/img/angular.png">
  4. </div>
  5. </header>
复制代码
header.css:
  1. header {
  2. display: block;
  3. min-height: 60px;
  4. padding: 8px 20px 0px 20px;
  5. background: #0273D4;
  6. border: 0;
  7. }

  8. .header {
  9. width: 100%;
  10. padding: 10px 0 12px 0;
  11. }

  12. img {
  13. width: 66px;
  14. height: 66px;
  15. }
复制代码
然后Header组件是怎么加入到入口文件的呢??? 下面我们来看看app.component.ts文件里我们都做了什么:
首先我们import我们的两个组件footer, header
然后用component的selector标签写到你想组件出现的地方(什么地方都可以哦~~,只要你的组件是可以重用的,是不是很爽~~~)
  1. import {Component} from '@angular/core';

  2. import HeaderComponent from './header/header.component';
  3. import FooterComponent from './footer/footer.component';

  4. @Component({
  5. selector: 'wk-app',
  6. template : `<wk-header></wk-header>
  7.                           <main>
  8.                                  <h1>Hello Angular2 !</h1>
  9.                          </main>
  10.                  <wk-footer></wk-footer>`,
  11. styles: [`
  12.               main {
  13.                            height: 300px;
  14.                            text-align: center;
  15.                        }
  16. `],
  17. directives: [HeaderComponent, FooterComponent]
  18. })
  19. export default class AppComponent {}
复制代码
如果仔细观察会发现,这里组件里用了不同的方式引入template和style,当我们用url的方式引入的时候会牵扯到相对路径的问题,你可以选择用绝对路径的方式引入(不推荐),另一种就是用moduleId的方式,也是官方推荐的方式,但是它跟你用什么方式去编译有关系,如果是用Typescript编译,我们可以直接写成 moduleId: module.id(官方推荐), 如果你用SystemJS,你可以写成moduleId: _moduleName,如果你是用Webpack,你可以用require()的方式引入资源,如果你是用Dart,你可以完全不用特殊处理。。。所以方法是有很多的,大家可以自由选择。

好~回归正题,通过上面的方式我们就简单得把我们的页面拆分成了三个简单的components了,顶部(Header),内容(main),底部(Footer),是不是觉得其实SO Easy~~~

最后上我们的战利品,现在我们的页面看上去是这样的~~~~

hello.PNG (12.62 KB, 下载次数: 1)



ChinaGDG.com
回复

使用道具 举报

2#
 楼主| 发表于 2016-7-21 21:29:45 | 只看该作者
本帖最后由 悟箜 于 2016-7-21 22:37 编辑

代码已经稍做整理并上传到Github,地址如下:https://github.com/WuKongW/Angular2_POC
ChinaGDG.com
回复 支持 反对

使用道具 举报

3#
发表于 2016-7-29 15:19:55 | 只看该作者
32赞,还有吗
ChinaGDG.com
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2016-7-30 12:08:17 | 只看该作者
yuanyang536 发表于 2016-7-29 15:19
32赞,还有吗


慢慢来,可以有
ChinaGDG.com
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表