基于WeUI的Angular2开发
钟爱AngularWeUI在微信上的表现真的很惊艳,极大简化微信UI的纠结。如果你和我一样一时找不到合适的UI,WeUI未尝不是一种选择。 一直以来大厂对React比较钟爱,官网也提供 React-Weui 版本;而对于像我这类钟爱Angular的人而言,或者说团队里面对Angular比较熟悉的情况下,如果能有一套比较标准的UI,在微信端开发应用也会极爽。 当然啦,Angular版本的WeUI在Github上也有好几套,但要么是还处于2.x时代、要么就是缺少维护。因此,不得以重复造了一套轮子,其名: 如何使用下面会有点啰嗦,在这之前可以看一眼示例。 样式
<link href="//res.wx.qq.com/open/libs/weui/1.1.2/weui.min.css" rel="stylesheet"> 安装与注册npm install ngx-weui --save
import { WeUiModule } from 'ngx-weui'; @NgModule({ imports: [ WeUiModule.forRoot() ] }) export class AppModule { } 注册所有的模块。 当然,如果你明确知道只使用其中几个模块的话,可以针对模块进行导入,这样也可以简化包大小,比如导入一个弹出式菜单模块: import { ActionSheetModule } from 'ngx-weui/actionsheet'; @NgModule({ imports: [ ActionSheetModule.forRoot() ] }) export class AppModule { } 使用
用一句比较简单的话来讲,react在运行时决定组件,而angular在编译时决定组件。 正因此如此,所以我决定不对样式也组件化,因为这样完全没有意义。所以 怎么区分这一点呢?比如说 当然,像Toast本身是需要触发产生的,则 <weui-button (click)="successToast.onShow()">Toast From Component</weui-button> <weui-toast #success></weui-toast> @ViewChild('success') successToast: ToastComponent; 默认Toast组件创建后是被隐藏的,所以这里需要定义一模板变量用于存储这个组件实例,才能调用该组件的 恩,上面的写有点奇怪,因为不是很优雅,我的意思是说需要先在HTML模板中放置一个 所以,提供另一种 Service 形式写法,为什么呢?很简单,很多时候我们希望在 Class 里直接一个 Toast 显示告知用户你有问题,这个时候还要去HTML模板创建再显示,显得编码太过于笨拙。 constructor(public srv: ToastService) { // success srv.success(); // loading srv.loading(); } 怎样,注入 Service 类,一行代码简洁、优雅! 全局默认配置项说明有一些模块(比如:actionsheet、button等),虽然已经有一些默认的配置,但你可以通过全局注册来改变它。 比如,默认按钮的类型是 <weui-button>成功样式按钮</weui-button> <weui-button weui-type="warn">警告样式按钮</weui-button> 可以在NgModule改变默认配置项,默认所有按钮为警告样式。 import { NgModule } from '@angular/core'; import { WeUiModule,ButtonConfig } from 'ngx-weui'; @NgModule({ imports: [ WeUiModule.forRoot() ],providers: [ // 重置默认按钮样式为:warn { provide: ButtonConfig,useFactory: ()=> { return Object.assign(new ButtonConfig(),{ type: 'warn' }); } } ] }) 这种方式,可以简化通用操作。 是否允许全局配置的模块,可以在API文档中见【可用于[全局配置]】字样的类,都属性可用于全局配置类。 一些细节但又有用的点命名说明HTML模板中组件名、属性名的命名有的是以
最后
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |