Angular 4 自定义组件封装遇见的一些事儿


你用Angular 吗?

一.介绍

    说说封装Angular 组建过程中遇见的一些问题和感悟。用久了Angular,就会遇见很多坑,许多基于Angular开发的框架最喜欢做的事情就是封装组件,然后复用.....因为这是最省事的。

二.基本构建组件思想


界面构建草图

  简要介绍上图:

    1.View 就是我们需要完成的界面,但是界面无非就是由若干个label,button,table,img,list等一些基本控件构成的,所有的前端页面构成都是一样,只是加上CSS排版确定最后的显示效果。

    2.五种基类,其实不止五种,只是列举。这里就需要我们将基类都封装成组件的形式,对外提供组件标签就可以使用。不管构建多少个页面,都可以用这几个基本组件完成。

  eg:一个button组件


button.component.html

  这个Button组件里面是还包裹一个label组件的。


button.component.ts

  对外只用提供选择器,就可以使用Button了。

3.可是为什么还要有中间的UIbuileder呢?

是这样的,每次引选择器名是不是也很麻烦,看起来没有省力多少,

封装的基本组件只需要对外抛出一个TYPEID,UIbuilder只要知道1是代表button组件,2代表label组件,UIbuilder将组件构建出来。


UIBuilder.html 构建组建图

  VIEW界面需要Button给我传一个1,需要label传一个2,需要什么传对于的id就行。此时的界面和组件是完全分离的,这样构件界面的时候几乎可以没有代码就出来一个页面啦。而且下次用的时候,基类是完全不用动的。

三.样式控制。

也许你会觉得这样构件出来的只有最简单的页面,那么样式呢?

的确呀,这样就是很老土的界面,那么样式要怎么实现呢?

其实Angular 提供了很多的方法的。

1.一张样式表,定义所有的样式。相当于boostrap一样。


button样式定义

  都知道{{}}的定义,你只要在最外面将你需要的样式名传进来就可以啦。

2.代码修改样式

  ElementRef ,Renderer2  有多少人知道这两个属性的。


代码修改样式

    这种都是可以在外部修改样式的,你的基组件不需要改动。

    可能看起来费劲,但用起来好处很多,不用copy,copy了,而且你的思想也会到一个新的境界。

  其实,我用Angular有一段时间了,如果你也是,欢迎来交流。

posted @ 2017-08-22 21:37  前端进阶中  阅读(6633)  评论(0编辑  收藏  举报