首页 > 其他分享 >Angular2 Material Design开发环境搭建

Angular2 Material Design开发环境搭建

时间:2023-05-21 19:07:33浏览次数:45  
标签:md material app Material dark Angular2 import Design angular


Angular2和Angular1有什么区别?就是Java和Javascript,雷锋和雷锋塔的区别。刚会用Angular1做些小项目,发现Angular2来了,据说性能上提升还是蛮多,所以还是从0开始吧。Angular2虽然还是支持用es5代码开发,但连官方教程都已经用TypeScript,对于之前没有接触过的人来说,学习还是有些成本的。

作为一个新手,搭建环境还是折腾了很久,所以记录下来方便其他新手。

流程:

  1. 使用 angular-cli 创建项目
  2. 集成 Angular Material

angular-cli和Angular Material目前都还在beta阶段,毕竟Angular2正式发布也没有很久,用于生产请自己斟酌。

创建Angular2项目

  1. 安装angular-cli npm install -g angular-cli
  2. 在适当的位置创建项目 ng new angular2Demo cd angular2Demo ng serve

创建过程会自动使用npm下载依赖,ng serve即启动内置的服务器,默认端口4200。使用浏览器打开 http://localhost:4200,可以看到项目已经启起来了。

此时打开chrome的network,可以发现有个vendor.bundle.js特别大,有2M多,图上4M多是因为我已经加了Material库。这是webpack把所有依赖的库都打包在一起了,而且没有任何压缩。

显然这么大的文件放到生产环境中是不合适的。这是因为默认情况下,启动的是开发模式。

生成生产环境代码:


ng build --prod --env=prod



执行后,会在项目根目录下生成dist目录,所有优化后的代码

以生产模式启动服务器



ng serve --prod



再看network,发现所有资源自动打上了版本号vendor.xxx.bundle.js也被压到了200多k。

集成Material

  1. 安装

Material是以组件的形式开发的,所以安装也使用npm



npm install --save @angular/material



     2.修改app.module.ts

打开src/app/app.module.ts,引入material模块

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import { AppComponent } from './app.component';
import { MaterialModule } from '@angular/material';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    MaterialModule.forRoot()
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

1、引入核心和主体风格,添加下面一行到 style.css,注意是 src

@import '~@angular/material/core/theming/prebuilt/deeppurple-amber.css';

deeppurple-amber

2、如果需要用到md-slider(可拖动的进度条)和md-slide-toggle(带滑动动画的开关),还需要安装HammerJS

npm install --save hammerjs

npm install --save@types/hammerjs

在app.module.ts中 import 'hammerjs';

然后编辑 tsconfig.json

{
  "compilerOptions": {
    "baseUrl": "",
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": ["es6", "dom"],
    "mapRoot": "./",
    "module": "es6",
    "moduleResolution": "node",
    "outDir": "../dist/out-tsc",
    "sourceMap": true,
    "target": "es5",
    "typeRoots": [
      "../node_modules/@types"
    ],
    "types": [
      "hammerjs"
    ]
  }
}

 

3、配置MaterialDesign字体 ,如果需要字体图标可以在 src/index.html

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> 
<!--但是google的是需要fanqiang的,可使用下面地址替代-->

app.component.html

<h1 class="title">
  {{title}}
</h1>
<app-nav></app-nav>

<button md-button>FLAT</button>
<button md-raised-button>RAISED</button>
<button md-icon-button>
  <md-icon class="md-24">favorite</md-icon>
</button>
<button md-fab>
  <md-icon class="md-24">add</md-icon>
</button>
<button md-mini-fab>
  <md-icon class="md-24">add</md-icon>
</button>
<br/>
<br/>

<button md-raised-button color="primary">PRIMARY</button>
<button md-raised-button color="accent">ACCENT</button>
<button md-raised-button color="warn">WARN</button>
<br/>
<br/>

<button md-button disabled>OFF</button>
<button md-raised-button [disabled]="isDisabled">OFF</button>
<button md-mini-fab [disabled]="isDisabled"><md-icon>check</md-icon></button>

 

 待页面部署完成后我们会看到以下效果:

Angular2 Material Design开发环境搭建_ViewUI

4、引入css样式


在src目录下新建material-design.scss:

@import '~@angular/material/core/theming/all-theme';

// NOTE: Theming is currently experimental and not yet publically released!
@include md-core();
$primary: md-palette($md-deep-purple);
$accent:  md-palette($md-amber, A200, A100, A400);
$theme: md-light-theme($primary, $accent);
@include angular-material-theme($theme);
.m2app-dark {
  $dark-primary: md-palette($md-pink, 700, 500, 900);
  $dark-accent:  md-palette($md-blue-grey, A200, A100, A400);
  $dark-warn:    md-palette($md-deep-orange);
  $dark-theme: md-dark-theme($dark-primary, $dark-accent, $dark-warn);
  @include angular-material-theme($dark-theme);
}

 打开根目录下的angular-cli.json,styles配置增加刚刚的文件

"apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": [
        "assets",
        "favicon.ico"
      ],
      "index": "index.html",
      "main": "main.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.json",
      "prefix": "app",
      "mobile": false,
      "styles": [
        "styles.css",
        "material-design.scss"
      ],
      "scripts": [],
      "environments": {
        "source": "environments/environment.ts",
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
  ],

编辑src/app/app.component.html:



<md-progress-spinner mode="indeterminate" ></md-progress-spinner>



启动服务器,如果所有配置没有错,页面上应该显示旋转的进度圈。

标签:md,material,app,Material,dark,Angular2,import,Design,angular
From: https://blog.51cto.com/u_4387387/6319994

相关文章

  • AngularJS2 教程 -- Angular-cli搭建Angular2开发环境
    1.nodejs2.npm包管理以下的东西就当你是知道了这些概念了1.首先,到nodejs官网下载nodejs并安装 2.添加淘宝的npm镜像(由于国内访问国外网站的速度实在是太慢了),由于我们只有要用到的一些东西,我们采用以下的添加镜像方法(windows用户使用cmd,输入以下命令,新手请去看看npm使用教程......
  • 袋鼠云数栈UI5.0焕新升级,全新设计语言DT Design,更懂视觉更懂你!
    数栈作为袋鼠云打造的一站式数据开发与治理平台,从2016年发布第⼀个版本开始,就始终坚持着以技术为核⼼、安全为底线、提效为⽬标、中台为战略的思想,坚定不移地⾛国产化信创路线,不断推进产品功能迭代、技术创新、服务细化和性能升级。伴随业务的⻜速发展,数栈设计团队也启动了针对数栈......
  • Vue Ant Design Pro 中定制主题
    VueAntDesignPro中定制主题需求定制主题去除“正在切换主题”过渡效果 需求项目要求使用草绿色的主题色并且去除如下的loading效果定制主题这里可以参照AntDesignProofVue官方文档哦定制方式是使用 less 的modifyVars的方式进行覆盖变量官方文档......
  • GT-HMI Designer安装教程
    一、简介GT-HMI(HumanMachineInterface)国产开源GUI框架及永久免费设计软件。它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。针对国内市场及用户需求,使用习惯进行了优化设计,为国内工程师量身打造!产品由中国高通GENITOP倾心打造,继承了中国......
  • 为powerdesigner添加mysql的字符集支持
    [url]http://jooben.blog.51cto.com/253727/309467[/url]一般建模可能都会用到:powerdesigner但是,在建表的时候,我一直没有找到:DEFAULTCHARACTERSETCOLLATE两个选项。因此,想了个方法,点击:工具栏-》database-》editcurrentDBMS[img]http://img1.51c......
  • 纯电动汽车动力性经济性开发程序 Matlab AppDesigner 汽车性能开发工具 电动汽车动力
    纯电动汽车动力性经济性开发程序MatlabAppDesigner汽车性能开发工具电动汽车动力性计算电动汽车动力总成匹配写在前面:汽车动力性经济性仿真常用的仿真工具有AVLCruise、ameSIM、matlab/simulink、carsim等等,但这些软件学习需要付出一定时间成本,有很多老铁咨询有没有方便入手......
  • AntDesign的Form表单内容有值但是仍然报请输入的错误
    案例解决方案a-form标签上有:model="formState"a-form-item中的name值和v-model:value对应值保持一致案例<a-form:label-col="labelCol":wrapper-col="wrapperCol"ref="formRef":model="formState">......
  • Qt Designer 简介
    1.设计窗口默认形式: 2.设计窗口默认形式_2: 3.窗口按钮和编辑框: 4.对输入框输入提示: 5.修改窗口名: 6.窗体---》预览,查看设计的窗口: 6_1.窗体---》预览,查看设计的窗口: 7.界面设计好以后要进行`保存`: ......
  • ant-design-vue中,如何将固定头部(layout-header)中的menu-item元素移动到右边
    官方的文档显示的都是左边,提供的API也没有移动到右边的功能 在ant-design-vue的群里面问了,然后又去各种问。有人建议可以用row和col来解决,也是可以,但是为了保持格式完整性,最好是在menu中去修改,不然,按键和其他按键不一样,很麻烦。去ant-design(ant-design-vue算是ant-design的分......
  • SemiEng20230413-What Designers Need To Know About GAA
    Nanowire与nanosheet争议仍然存在,业界还没确定谁更适合作下一代主流逻辑器件。对任何新器件,第一代都是用来学习试验的,后面再迭代升级。FinFET不能继续缩微的原因:fin之间要填栅和功函数堆叠层,fin之间15-20nm的距离是必要的。“So,youhavethiscliff.”工艺(Foundry)......