• 技术文章 >web前端 >js教程

    JS里计数器的使用

    php中世界最好的语言php中世界最好的语言2018-03-19 16:27:01原创2396
    这次给大家带来JS里计数器的使用,使用JS里计数器的注意事项有哪些,下面就是实战案例,一起来看一下。

    angular2+ 的学习成本应该是三大框架中最高的一个,教程及案例稀缺,流程较为复杂,这里我用计数器和在线获取用户数据并渲染成列表这两个案例来帮大家快速入手angular2+。

    在开始之前,希望你能先掌握rxjs以及typescript,否则对其中的一些写法可能会觉得难以理解。

    在开始之前,需要先安装@ngrx/store和@ngrx/effects

    yarn add @ngrx/store @ngrx/effects

    本教程使用的 ngrx/effects和ngrx/store版本均为5.2.0。

    先来大致说一下开发流程:

    开始 -> 编写数据模型 -> 编写action -> 编写redurces并配置到相应module -> 编写services -> 编写effects并配置到相应module -> 创建组件 -> 组件绑定数据模型 -> 渲染

    我们先完成计数器案例。此案例由于没有异步任务,所以可以省略掉services和effects。

    创建项目到启动初始页面之间的步骤这里就不讲了。注意style要使用scss。还有不要使用cnpm安装包。改用yarn或者npm,这样后期使用不容易报错。

    ng new your-project --style scss

    第一步:编写数据模型(app/models/num.ts)

    export class Num {
      count: number;
     
      constructor(num: number) {    this.count = num;
      }
    }

    第二步:编写action(app/actions/num.ts)

    import {Action} from '@ngrx/store';
     
    export enum NumActionType {
      Add = 'ADD'}
     
    export class ADD implements Action {
      readonly type = NumActionType.Add;  //固定写法,必须叫type}

    第三步:编写redurcers(app/redurces/modelNum.ts)

    import {Num} from '../models/num';
    import {Action} from '@ngrx/store';
    import {NumActionType} from '../actions/num';
     
     
    export const modelNum = (state: Num = new Num(0), action: Action) => {       
      switch (action.type) {    case NumActionType.Add:
          state.count++;      return state;    default:      return state;
      }
    };

    不要忘记配置redurcer(app/app.module.ts)

      imports: [
        BrowserModule,
        RouterModule.forRoot(routes),
        StoreModule.forRoot({ modelNum}),      //配置redurcer
      ],

    第四部:创建组件

    ng g component model-num

    第五步:组件绑定数据模型(连带完成第六步)

    组件html文件:

    <p>
      <input (click)="add()" value="+" type="button">
      <p>{{num.count}}</p>
      <input value="-" type="button">
      <br/>
      <a routerLink="/list">to list demo</a></p>

    组件ts文件:

    import {Component, OnInit} from '@angular/core';
    import {Num} from '../models/num';
    import {Store} from '@ngrx/store';
    import {NumActionType} from '../actions/num';
    @Component({
      selector: 'app-model-demo',
      templateUrl: './model-demo.component.html',
      styleUrls: ['./model-demo.component.scss']
    })
    export class ModelDemoComponent implements OnInit {
      constructor(private _store: Store<any>) {
        this._store.select('modelNum').subscribe(mNum => {    //涉及到rxjs。    
          this.num = mNum;
          console.log(mNum);
        });
      }
      public num: Num;
      public add() {
        console.log('add');
        this._store.dispatch({          //调用dispatch触发添加redurces
          type: NumActionType.Add
        });
      }
      ngOnInit() {
      }
    }

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    JavaScript之优化DOM

    Vue的计算属性

    以上就是JS里计数器的使用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript 计数器 使用
    上一篇:JavaScript之优化DOM 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文详解Node中的模块化、文件系统与环境变量• 为什么要用debugger来调试代码?这样你能读懂各种源码!• 一文聊聊Node包管理发展的五个阶段• 一文探究Angular中的服务端渲染(SSR)• 带你了解Angular组件间进行通信的几种方法
    1/1

    PHP中文网