zoukankan      html  css  js  c++  java
  • [REASONML] Using Javascript npm package from REASON

    For example, we want to use moment.js inside our ReasonML code.

    What we can do is create a module file:

    //Moment.re
    
    type tt;
    
    external momentWithDate : Js.Date.t => tt = "moment" [@@bs.module];
    
    external format : tt => string => string = "" [@@bs.send];

    Using it inside component:

    /* This is the basic component. */
    let component = ReasonReact.statelessComponent "Page";
    
    /* Your familiar handleClick from ReactJS. This mandatorily takes the payload,
       then the `self` record, which contains state (none here), `handle`, `reduce`
       and other utilities */
    let handleClick _event _self => Js.log "clicked!";
    
    let momentNow = Moment.momentWithDate(Js.Date.make());
    
    /* `make` is the function that mandatorily takes `children` (if you want to use
       `JSX). `message` is a named argument, which simulates ReactJS props. Usage:
    
       `<Page message="hello" />`
    
       Which desugars to
    
       `ReasonReact.element (Page.make message::"hello" [||])` */
    let make ::message ::times _children => {
      ...component,
      render: fun self =>
        <div onClick=(self.handle handleClick)> 
        (ReasonReact.stringToElement message) 
        (ReasonReact.stringToElement times) 
        (ReasonReact.stringToElement (Moment.format momentNow "dddd"))
        </div>
    };
  • 相关阅读:
    为什么 Redis 重启后没有正确恢复之前的内存数据
    Redis的启动过程
    Redis 如何保持和MySQL数据一致
    redis集群节点宕机
    mysql 数据库管理
    mysqladmin 命令详解
    MySQL 编译安装
    mysql 数据库简介
    xtrabackup安装部署(二)
    Non-negative Partial Sums(单调队列)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/7745823.html
Copyright © 2011-2022 走看看