zoukankan      html  css  js  c++  java
  • Alt.js的入门

    一、什么是Alt

    altJS是基于Flux使用Javascript应用来管理数据的类库,它简化了flux的store、actions、dispatcher。

    关于Flux,以下链接都做了很好的诠释

    http://news.cnblogs.com/n/208305/

    http://www.cnblogs.com/linerz/p/react-flux-example-todomvc-analysis.html

    二、还需要了解

    React, CommonJS, ES5 Javascript, 至于ES6,本文采用ES5做例,有兴趣的朋友可以转成ES6,关于ES6浏览器兼容问题,还要下载babel进行转换。

    三、安装

    alt是基于Note.js开发的,所以安装前需要安装note.js

    使用npm安装alt:npm install alt 

    四、Alt的基本结构

    项目结构

    |--actions/

    |  |--MyActions.js

    |--stores/

    |  |--MyStore.js

    |--components/

    |  |--MyComponent.jsx

    |--alt.js

    |--app.js

    六、创建alt

    var Alt = require(‘alt’);
    
    var flux = new Alt();
    
    module.exports = flux;

    七、创建Actions

    alt 通过自定义的方法进行actions的创建createActions

    var flux = require(‘…/flux’);
    
    module.exports = flux.createActions({
    
         GetData:function(input){
    
               /*
            
    webapi get 获取数据data
          */ this.dispatch(data);    },    GetDetail: function(id){   /*获取单条数据*/   this.dispatch(data);    } });

    八、创建Store

    var flux = require(‘…/flux’);
    
    var MyActions= require(‘../actions/MyActions’);
    
    var MyStore =  flux.createStore({
    
                  bindListeners:{
                      Handledata: MyActions.GetData,
                   HandleDetail:MyActions.GetDetail
            },
    
            Handledata:function (data){
                    this.setState({datas: data});
    
            },
            HandleDetail:
    function(data){
              this.setState({data:data});
            } },’MyStore’); module.exports
    = MyStore;

    九、在View中使用MyComponent.jsx

    var React = require(‘react’);
    
    var MyStore = require(‘../Stores/MyStore’);
    
    var MyAction = require(‘../Stores/MyAction’);
    
    var MyComponent = React.createClass({
    
           getInitialState:function(){
    
               return MyStore.getState();
    
        },
    
        getDetail: function(data,e){
    
                    var id = data.Id;
    
                    MyAction.GetDetail (id);
    
        },
    
        componentDidMount: function(){
    
                    MyStore.listen(this.onChange);
    
        },
    
        componentWillMount: function(){
    
                    MyStore.unlisten(this.onChange);
    
        },
    
        onChange: function(state){
                    this.setState(state);
    
        },
    
        render: function(){
    
                    return(

                <ul>
      
                  {this.state.datas.map(function(data){                 Return (

                      <li onClick={this.getDetail.bind(null,data)}>{data.name}</li>);               })} </ul>          );     } }); module.exports = MyComponent;
  • 相关阅读:
    Bootstrap_让Bootstrap轮播插件carousel支持左右滑动手势的三种方法
    JAVA_用Java来获取访问者真实的IP地址
    Html5_移动前端不得不了解的html5 head 头标签
    ThinkPad_T430重装系统
    JavaScript_JS判断客户端是否是iOS或者Android
    Html5_禁止Html5在手机上屏幕页面缩放
    HttpClient_httpclient 4.3.1 post get的工具类
    HttpClient_使用httpclient必须知道的参数设置及代码写法、存在的风险
    LATEX数学公式基本语法
    为WLW开发Latex公式插件
  • 原文地址:https://www.cnblogs.com/ruanyifeng/p/4992454.html
Copyright © 2011-2022 走看看