舉報

會員
ReasonML Quick Start Guide
ReasonML,alsoknownasReason,isanewsyntaxandtoolchainforOCamlthatwascreatedbyFacebookandismeanttobeapproachableforwebdevelopers.AlthoughOCamlhasseveralresources,mostofthemarefromtheperspectiveofsystemsdevelopment.Thisbook,alternatively,exploresReasonfromtheperspectiveofwebdevelopment.You'lllearnhowtouseReasontobuildsafer,simplerReactapplicationsandwhyyouwouldwanttodoso.Reasonsupportsimmutabilitybydefault,whichworksquitewellinthecontextofReact.InlearningReason,youwillalsolearnaboutitsecosystem–BuckleScript,JavaScriptinteroperability,andvariousnpmworkflows.Welearnbybuildingareal-worldappshell,includingaclient-siderouterwithpagetransitions,thatwecancustomizeforanyReasonproject.You'lllearnhowtoleverageOCaml'sexcellenttypesystemtoenforceguaranteesaboutbusinesslogic,aswellaspreventingruntimetypeerrors.You'llalsoseehowthetypesystemcanhelpoffloadconcernsthatweoncehadtokeepinourheads.We'llexploreusingCSS-in-Reason,howtouseexternalJSONinReason,andhowtounit-testcriticalbusinesslogic.Bytheendofthebook,you'llunderstandwhyReasonisexplodinginpopularityandwillhaveasolidfoundationonwhichtocontinueyourjourneywithReason.
目錄(163章)
倒序
- coverpage
- Title Page
- Copyright and Credits
- ReasonML Quick Start Guide
- About Packt
- Why subscribe?
- Packt.com
- Contributors
- About the authors
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Conventions used
- Get in touch
- Reviews
- Introduction to ReasonML
- What is ReasonML?
- Why Reason?
- Support for immutability and purity
- Module system
- Type system
- Cross-platform
- Maintainability
- Interoperability
- ES2030
- Community
- The Future of ReactJS
- Exploring Reason
- Data structures and types
- Creating our own types
- Pattern matching
- Making Invalid States Impossible
- Summary
- Setting Up a Development Environment
- The Reason toolchain
- Installing BuckleScript
- Editor configuration
- Setting up a pure Reason project
- The bsconfig.json file
- The warnings field
- The package-specs field
- The suffix field
- The sources field
- Working with DOM
- Setting up a ReasonReact project
- Improving the developer experience
- Summary
- Creating ReasonReact Components
- Component creation basics
- Component templates
- self
- Event handlers
- unit
- JSX
- Props
- Children
- Life cycles
- Subscriptions helper
- Stateful components
- State action and reducer
- Refactoring
- Instance variables
- Ref and mutable records
- Navigation menu
- Bindings
- Events
- Js.t Object
- Adding actions
- Inline styles
- React ref
- Velocity
- Client-side routing
- Current route
- Helper functions
- Usage
- Summary
- BuckleScript Belt and Interoperability
- Module scope
- Data structures
- Array
- Using the Reason standard library
- Using the Belt standard library
- Using BuckleScript's built-in JavaScript bindings
- Using a custom binding
- Using raw JavaScript
- List
- Recursion
- Pipe operators
- Using Belt
- Option module
- List module
- make
- makeBy
- shuffle
- take
- Deck of cards example
- Currying
- Uncurried functions
- makeByU
- JavaScript interoperability
- Using JavaScript in Reason
- Understanding the [@bs.val] decorator
- Understanding the [@bs.scope] decorator
- Understanding the [@bs.send] decorator
- Understanding the [@bs.module] decorator
- Reasonable APIs
- BuckleScript documentation
- Binding to existing ReactJS components
- Importing dependencies
- Creating the make functions
- Using [@bs.deriving abstract]
- Using the components
- Summary
- Effective ML
- Module signatures
- Module types
- Abstract types
- Using module signatures
- Phantom types
- Polymorphic variants
- Would this work with normal variants?
- Advanced type system features
- Summary
- CSS-in-JS (in Reason)
- What is CSS-in-JS?
- A brief history
- Using styled-components
- Using [@bs.variadic]
- Using bs-css
- Trade-offs
- Other libraries
- Summary
- JSON in Reason
- Building views
- File structure
- Updating the router and navigation menu
- CustomerType.re
- CustomerList.re
- Customer.re
- Integrating with localStorage
- Populating localStorage
- DataPureReason.re
- Validating JSON strings
- Using Js.Json.classify
- Writing to localStorage
- Using bs-json
- Using GraphQL
- What is GraphQL?
- When using GraphQL do I need to create JSON decoders?
- Summary
- Unit Testing in Reason
- Testing with Jest
- Installation
- Our first test
- Testing business logic
- Reflecting
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-07-02 12:34:36
推薦閱讀
- Web安全防護指南:基礎篇
- Truffle Quick Start Guide
- 農產品物聯網研究與應用
- 智慧城市中的移動互聯網技術
- 正在爆發的互聯網革命
- WordPress Web Application Development
- 搶占下一個智能風口:移動物聯網
- 5G技術與標準
- TD-LTE無線網絡規劃與設計
- 網絡利他行為研究:積極心理學的視角
- 大型企業微服務架構實踐與運營
- 沖擊:5G如何改變世界
- 精通SEO:100%網站流量提升密碼
- 深入淺出計算機網絡
- OpenCV 3 Computer Vision with Python Cookbook
- 網絡編碼應用
- MPLS網絡設計權威指南
- Internet應用技術立體化教程
- 數字經濟時代的智慧城市與信息安全
- 工業互聯網創新實戰:技術、產業融合、案例分析全案
- VMware vSphere企業級網絡和存儲實戰
- 計算機網絡技術(第3版)
- Oracle Service Bus 11g Development Cookbook
- 崛起的超級智能:互聯網大腦如何影響科技未來
- Python Programming Blueprints
- 5G安全:數智化時代的網絡安全寶典
- 后危機時代跨國公司全球生產網絡研究:以西門子和華為公司為例
- 5G為人工智能與工業互聯網賦能
- 實施Cisco統一通信管理器(CIPT2)
- 物聯網概論 第2版