zoukankan      html  css  js  c++  java
  • [Cycle.js] From toy DOM Driver to real DOM Driver

    This lessons shows how we are able to easily swap our toy DOM Driver with the actual Cycle.js DOM Driver, a more solid, more flexible, more efficient implementation.

    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.0.6/rx.all.js"></script>
    <script src="https://rawgit.com/cyclejs/cycle-core/v6.0.3/dist/cycle.js"></script>
    <script src="https://rawgit.com/cyclejs/cycle-dom/v9.1.0/dist/cycle-dom.js"></script>
      <meta charset="utf-8">
      <title>JS Bin</title>  
    </head>
    <body>
      <div id="app"></div>
    </body>
    </html>
    const {h, h1, span, makeDOMDriver} = CycleDOM;
    
    // Logic (functional)
    function main(sources) {
      const mouseover$ = sources.DOM.select('span').events('mouseover');
      const sinks = {
        DOM: mouseover$
          .startWith(null)
          .flatMapLatest(() => 
            Rx.Observable.timer(0, 1000)
             .map(i => 
               h1({style: {background: 'red'}}, [
                 span([
                   `Seconds elapsed: ${i}`
                 ])
               ])
             )           
          ),
        Log: Rx.Observable.timer(0, 2000).map(i => 2*i),
      };
      return sinks;
    }
    
    // Effects (imperative)
    function consoleLogDriver(msg$) {
      msg$.subscribe(msg => console.log(msg));
    }
    
    const drivers = {
      DOM: makeDOMDriver('#app'),
      Log: consoleLogDriver,
    }
    
    Cycle.run(main, drivers);
  • 相关阅读:
    常用正则总结
    JavaScript中with语句的理解
    设置点击文本框或图片弹出日历控件
    设置时间 new Date
    windows 下配置 nginx的问题
    CSS3滚动条-webkit-scrollbar
    /、./、../ 的区别
    js中如何获取纯正的undefined?
    关于渐进增强和优雅降级
    每日一练-第三期
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5211692.html
Copyright © 2011-2022 走看看