[REASONML] Using Javascript npm package from REASON

來源:互聯網
上載者:User

標籤:render   name   pack   asc   span   code   component   sid   mil   

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

What we can do is create a module file:

//Moment.retype 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>};

 

[REASONML] Using Javascript npm package from REASON

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.