🐰 Rax is a progressive React framework for building universal application. https://rax.js.org

Overview

Rax

Rax is a progressive React framework for building universal applications.

gzip size


💌 Write Once, Run Anywhere: write one codebase, run with Web, Weex, Node.js, Alibaba MiniApp, WeChat MiniProgram and could work with more container that implements driver specification.

Fast: use better performance and tinier size( 📦 ~6KB) alternative to React with the same API.

📤 Easy: quick start with zero configuration, all features like Progressive Web App (PWA), Server-Side Rendering (SSR) and Function as a service (FaaS) can be used out of the box.

Quick Start 🥢 🍚

Start from command line

Create a new Rax project using create-rax:

$ npm init rax <YourProjectName>

npm init <initializer> is available in npm 6+

Start local server to launch project:

$ cd <YourProjectName>
$ npm install
$ npm run start

Start from VS Code

You need to install the Iceworks extension and invoke the Iceworks: Create Application command from the VS Code command palette (Ctrl + Shift + P or Cmd + Shift + P on Mac):

vscode

Developer Tools 🛠

You can inspect and modify the state of your Rax components at runtime using the Rax Developer Tools browser extension, and extension not works in production mode.

  1. Install the Chrome Rax Developer Tools extension
  2. Reload and go to the 'Rax' tab in the browser's development tools

VS Code Extension

You can use Iceworks VS Code Extension to get better development experience.

Awesome Things 📝

You can find some awesome things in awesome-rax.

Contributing 🧼

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing.

Code Contributors

This project exists thanks to all the people who contribute.

Community support

For general help using Rax, please refer to the official site. For additional help, you can use one of these channels to ask a question:

  • GitHub (Bug reports, contributions)
  • Twitter (Get the news fast)
  • Medium (Get blogs and articles)
  • 知乎专栏 (Get blogs and articles in Simplified Chinese)
Issues
  • Kraken比RN、Weex优势在哪里?

    Kraken比RN、Weex优势在哪里?

    Kraken基于JS和Dart通信实现动态化,脚本和渲染运行在两个环境下。Kraken那么不就和RN、Weex一样了吗? Flutter性能高不就是因为脚本和渲染在一个环境下,不用Bridge通信所以快的吗?

    Question 
    opened by challengingcheng 24
  • [Hooks] Uncaught TypeError: current is not a function

    [Hooks] Uncaught TypeError: current is not a function

    1. How would you tag this issue?
    • Bug
    1. Describe your issue:
    import { createElement, useEffect, useState } from 'rax';
    
    export default () => {
        const [visible, setVisible] = useState(false);
    
        useEffect(async () => {
            let a = await new Promise((resolve) => {
                setTimeout(() => {
                    resolve(11);
                });
            });
            console.log(a);
        });
    
        let element = (
            <div>
                <button onClick={() => setVisible(true)}>update</button>
            </div>
        );
    
        return element;
    }
    

    If I click the update button, Rax will throw the error below: image image

    Bug 
    opened by andycall 22
  • rax-xxx@1.0 更新

    [email protected] 更新

    rax-text、rax-view、rax-image、rax-icon、rax-button、rax-touchable、rax-video 希望能和1.0的rax框架匹配

    opened by yuchonghua 16
  • [BUG] [微信小程序] - style 不支持 WebkitLineClamp 或者 -webkit-line-clamp

    [BUG] [微信小程序] - style 不支持 WebkitLineClamp 或者 -webkit-line-clamp

    代码:

    <view style={{
          '-webkit-box-orient': 'vertical',
          '-webkit-line-clamp': 2,
          color: 'blue',
        }}>
    

    渲染成小程序代码以后,可以发现 -webkit-line-clamp 丢失

    Bug 
    opened by Rabbitzzc 12
  • [BUG] 使用 vant 添加到 miniapp-native,组件 linked 事件调用失败

    [BUG] 使用 vant 添加到 miniapp-native,组件 linked 事件调用失败

    问题描述

    在 Rax 开发的小程序中,使用 vant 添加到 miniapp-native,使用了 drop-menu 组件,发现无效果。经过测试,发现组件内部 link 事件调用失败。 image

    Bug 
    opened by Rabbitzzc 12
  • npm run start后报错,求解决

    npm run start后报错,求解决

    webpack: building modules...(node:48859) DeprecationWarning: Tapable.apply is deprecated. Call apply on the plugin directly instead (node:48859) DeprecationWarning: Tapable.plugin is deprecated. Use new API on .hooks instead webpack: building modules.../Users/edward/study/testrax/demo/node_modules/neo-async/async.js:14 throw new Error('Callback was already called.'); ^

    Error: Callback was already called. at throwError (/Users/edward/study/testrax/demo/node_modules/neo-async/async.js:14:11) at /Users/edward/study/testrax/demo/node_modules/neo-async/async.js:2760:7 at Compilation.processModuleDependencies (/Users/edward/study/testrax/demo/node_modules/webpack/lib/Compilation.js:435:4) at afterBuild (/Users/edward/study/testrax/demo/node_modules/webpack/lib/Compilation.js:560:16) at _this.buildModule.err (/Users/edward/study/testrax/demo/node_modules/webpack/lib/Compilation.js:606:11) at callback (/Users/edward/study/testrax/demo/node_modules/webpack/lib/Compilation.js:357:35) at module.build.error (/Users/edward/study/testrax/demo/node_modules/webpack/lib/Compilation.js:393:12) at handleParseError (/Users/edward/study/testrax/demo/node_modules/webpack/lib/NormalModule.js:364:12) at doBuild.err (/Users/edward/study/testrax/demo/node_modules/webpack/lib/NormalModule.js:394:5) at runLoaders (/Users/edward/study/testrax/demo/node_modules/webpack/lib/NormalModule.js:270:12) at /Users/edward/study/testrax/demo/node_modules/loader-runner/lib/LoaderRunner.js:370:3 at iterateNormalLoaders (/Users/edward/study/testrax/demo/node_modules/loader-runner/lib/LoaderRunner.js:211:10) at Array. (/Users/edward/study/testrax/demo/node_modules/loader-runner/lib/LoaderRunner.js:202:4) at Storage.finished (/Users/edward/study/testrax/demo/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:43:16) at provider (/Users/edward/study/testrax/demo/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:79:9) at /Users/edward/study/testrax/demo/node_modules/graceful-fs/graceful-fs.js:78:16 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] start: rax-scripts start npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    opened by vdiskmobile 12
  • 在weex中使用rax是否可以引用本地ttf字体图标

    在weex中使用rax是否可以引用本地ttf字体图标

    使用rax比使用we要舒服,但都有同一个问题,似乎不能引用本地资源。 我想使用字体图标 <Icon fontFamily="iconfont" source={{uri: 'https://at.alicdn.com/t/font_pkm0oq8is8fo5hfr.ttf', codePoint: '\uE60f'}}/> 这样,如果客户端无网络,图标就无法显示出来,现在是否有解决办法? 我尝试local://drawable/aaa这样算是可以使用本地图片了,但ttf不行。 还有在windows下 npm run build 不能编译,只能在linux下编译目前

    opened by bishen 12
  • [Question]路由使用browser,二级目录部署,需要publicPath,设置后发现一些问题。

    [Question]路由使用browser,二级目录部署,需要publicPath,设置后发现一些问题。

    "publicPath": "/webapp/"

    1. Link组件需要web开发加上publicPath, 小程序不能加;
    2. Navigator组件需要web开发加上publicPath(使用history不需要开发拼), 小程序不能加;
    3. tabbar的image在public文件夹下会识别不到image,如果加上 publicPath就会影响小程序。
    4. 请问代码中如何获取publicPath
    Question 
    opened by waylon-gmail 12
  • [Question]微信onShareTimeline 分享朋友圈,title跟 imageUrl不生效

    [Question]微信onShareTimeline 分享朋友圈,title跟 imageUrl不生效

    分享给朋友是可以的。但是分享朋友圈不生效。不知道什么原因。

      // query: 自定义页面路径中携带的参数,如 path?a=1&b=2 的 “?” 后面部分
      const handleShareTimeline = () => {
        return {
          title: '我是自定义title',   // 不生效, 分享后是页面的title而不是自定义title
          query: `key=123`,
          imageUrl: 'https://xxxx.png',  // 不生效, 看到的是logo
        }
      };
    
      if (isWeChatMiniProgram) {
        registerNativeEventListeners(Index, ['onShareTimeline']);
      }
    
      useEffect(() => {
        if (isWeChatMiniProgram) {
          wx.showShareMenu({
            withShareTicket: true,
            menus: ['shareTimeline'],
          });
          addNativeEventListener('onShareTimeline', handleShareTimeline);
        }
        return () => {
          if (isWeChatMiniProgram) {
            removeNativeEventListener('onShareTimeline', handleShareTimeline);
          }
        };
      }, []);
    
    opened by waylon-gmail 12
  • React devtool not work with rax.

    React devtool not work with rax.

    开启react devtool后,map元素会报错Cannot read property '_topLevelWrapper' of undefined

    Bug 
    opened by wuyasong 11
  • feat(driver-dom): add getDriver method

    feat(driver-dom): add getDriver method

    • Add getDriver method which makes the driver use param document instead of global document
    opened by ChrisCindy 1
  • [BUG] useEffect 中 setState 无法保证执行时序

    [BUG] useEffect 中 setState 无法保证执行时序

    Describe the bug 当存在数个 useEffect 时,期望的执行时序是按顺序依次执行;此时如果 useEffect 中存在 setState ,useEffect 的执行时序会被破坏

    Demo

      const [val, setVal] = useState('');
    
      useEffect(() => {
        console.log(1);
        setVal('any');   // 该句会截断执行
        console.log(2);
      }, []);
    
      useEffect(() => {
        console.log(3);
      }, []);
    
    // 期望执行顺序为 1,2,3
    /**
    * 1
    * 3
    * 2
    **/
    

    CodeSandbox link

    Expected behavior 上述 demo 期望打印的顺序为 1,2,3 实际为 1,3,2。 setState 时会尝试清空剩下的 useEffect,导致执行时序不对

    Screenshots image

    (please complete the following information)

    • Device: [Mac]
    • OS: [macOS]
    • Browser [chrome]
    • Rax Version [3.7.4]

    Additional context react 没有类似问题

    opened by GreyZhou 0
  • [BUG] 使用pnpm安装依赖,使用start命令预览微信小程序组件,依赖路径不正确

    [BUG] 使用pnpm安装依赖,使用start命令预览微信小程序组件,依赖路径不正确

    问题 使用pnpm安装依赖,进行“组件开发“,使用build-scripts start命令进行预览,此时产物中引用依赖的路径不正确。

    QQ图片20220114165550

    此问题仅在使用pnpm安装依赖时出现,在npm下载依赖时表现正常。 pnpm版本: 6.26.1 电脑系统: Win10

    Demo

    bug复现仓库地址

    Bug 
    opened by Awen-hub 2
  • chore: remove driver kraken

    chore: remove driver kraken

    Remove driver kraken, using driver dom instead.

    • minor version updated.
    opened by wssgcg1213 1
  • [Question] English Version of Issue Request required!!

    [Question] English Version of Issue Request required!!

    Please describe the problem you meet. There is not an ample amount of English issues available, which makes it difficult to understand the issues.

    opened by Mihir-Bhasin 0
  • [Question]单页下webpack5+swc似乎不能使用

    [Question]单页下webpack5+swc似乎不能使用

    背景

    • 配置
    {
      "targets": ["web"],
      "web": {
        "mpa": false
      },
      "plugins": [],
      "webpack5": true,
      "swc": true
    }
    
    

    报错

    ncaught (in promise) TypeError: this.setState is not a function
        at a.ma.h (index.js:1)
        at M.e.<computed>.e.<computed> (index.js:1)
        at index.js:1
        at index.js:1
        at Array.map (<anonymous>)
        at Object.a [as triggerHandles] (index.js:1)
        at index.js:1
    

    然后我关掉swc,正常


    然后我在已有的项目,使用的使用遇到另外问题

    ERR! Module not found: Error: Can't resolve './random' in '/Users/chenshijian/code/act-20211020/node_modules/.pnpm/[email protected]/node_modules/random/dist/esm'
    ERR! Did you mean 'random.js'?
    ERR! BREAKING CHANGE: The request './random' failed to resolve only because it was resolved as fully specified
    ERR! (probably because the origin is strict EcmaScript Module, e. g. a module with javascript mimetype, a '*.mjs' file, or a '*.js' file where the package.json contains '"type": "module"').
    ERR! The extension in the request is mandatory for it to be fully specified.
    ERR! Add the extension to the request.
    ERR! webpack compile error 
    Error: webpack compile error
    
    

    如果我两个都开启,编译虽然成功,但出现另外错误

    530.746260a7e03294009d99.js:1 Uncaught (in promise) ReferenceError: exports is not defined
    

    我们想要加快一下构建效率,因为

    • 有个多页项目只是页面路由多10个页面要build好几分钟。单页倒是速度正常
    • 压缩的话,原先直接打包了接近1mb大小的js...
    opened by xmsz 6
  • [BUG]input 框在钉钉端无法唤起数字键盘,而且失去焦点事件也无法生效

    [BUG]input 框在钉钉端无法唤起数字键盘,而且失去焦点事件也无法生效

    input 框在钉钉端无法唤起数字键盘,而且失去焦点事件也无法生效

    opened by funnyproblemboy 1
  • [WIP]Feat Suspense

    [WIP]Feat Suspense

    • Support Suspense and lazy https://reactjs.org/docs/react-api.html#reactsuspense
    • Support render suspense server component
    opened by chenjun1011 1
  • [BUG] 页面切换时,页面状态在 web 和小程序侧行为不一致

    [BUG] 页面切换时,页面状态在 web 和小程序侧行为不一致

    Describe the bug

    Demo

    使用 npm init rax rax-example 分别创建 web 单页应用和 小程序跨端应用,新增一个页面,代码如下

    import { createElement, useRef, useState } from 'rax';
    import View from 'rax-view';
    import { usePageShow } from 'rax-app';
    
    export default function Home() {
      const ref = useRef(0);
    
      usePageShow(() => {
        ref.current += 1;
        console.log('pageshow ref', ref.current);
      });
    
      return (
        <View className={styles.homeContainer}></View>
      );
    }
    

    复现步骤:重复进入该页面多次,查看 Console 日志

    小程序侧表现(截图为微信小程序,模拟器和真机调试结果一致)

    Web 侧表现(chrome 浏览器)

    根据日志中的结果可以推断出,在小程序上页面的组件实例并没有被销毁,而在 web 单页应用上,切换页面,会导致上一个页面被销毁

    小程序上的这种行为,导致我们的开发同学使用了老的页面状态,并且试图在 usePageShow 中引用老的 state,但是这里又有一个坑,usePageShow 不支持传入第二个参数,导致读取的 state 永远是初始值

    Expected behavior

    usePageShow 在设计上并没有支持第二个参数,所以是不是应该保证小程序行为和 web 一致

    但从另一个角度说,小程序没有销毁实例,会让切换页面的体验更好,尤其是页面本身是一个 webview 的情况下,不会触发 h5 页面重新加载,如果以小程序上的行为为准,需要为 usePageShow 补上第二个参数 deps,让 usePageShow 内的代码可以追踪状态变化

    Additional context

    • Rax Version: 1.1.0
    • Rax App: 3.8.0
    opened by fengzilong 1
  • [BUG] PropTypes.node 无效

    [BUG] PropTypes.node 无效

    PropTypes.node 无效 image

    opened by yuchonghua 3
Releases(v1.2.2)
  • v1.2.2(Sep 2, 2021)

  • v1.2.1(Sep 1, 2021)

  • v1.2.0(Feb 5, 2021)

  • v1.1.4(Jul 15, 2020)

  • v1.1.3(May 26, 2020)

    • fix: fragment cache native node #1867
    • fix: portal with new context #1866
    • fix: unmount dirty component #1865
    • fix: destory function of a passive effect should call synchronously #1864
    • fix: render returns null to null empty nodes are also rebuilt #1842
    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Nov 19, 2019)

    • Fix: driver dom rpx (#1406)
    • Feat: upgrade style-unit support to driver-worker (#1411)
    • Fix: error boundary bug and remove useless code (#1414)
    • Feat: promote init speed (#1449)
    • Feat: support props check (#1444)
    • Feat: pwa support keepAlive & TabBar & preload and prerender (#1452)
    • Fix: update exception when rise a element type error (#1455)
    • Fix: support dimensional prop value without px (#1456)
    • Chore: freeze props (#1463)
    • Feat: do not break render when element type invalid (#1468)
    • Fix: prevent the same reference (#1470)
    • Fix: support dimensional prop value without px (#1467)
    • Feat: add useInterval and useTimeout (#1462)
    • Chore: rax-redux upgrade to latest (#1439)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.13(Nov 19, 2019)

    v1.0.13

    • Feat: rax-use-router support withRouter (#1385)
    • Fix: componentDidMount exec correct (#1399)

    v1.0.12

    • print warning when loop elements without key property (#1355)
    • context not work correct in async render mode (#1378)
    • Update rax project entry file app.js usage. (#1343)
    • minify the wrapper code generated by rollup (#1374)
    • when prev fragment is empty and update to other type (#1365)
    • compress _hooks (#1369)
    • mobx-rax support rax1.x (#1368)
    • fragment test case (#1363)
    • Only prevNativeNode is empty fragment should find the prevSlibingNativeNode (#1361)
    • add toWarnDev and toLowPriorityWarnDev jest matcher (#1354)

    v1.0.11

    • compress isPureComponent (#1358)
    • Key should not be compressed, for that will be added to native n… (#1356)

    v1.0.10

    • little opt (#1351)
    • empty array diff error (#1346)
    • Revert "fix: optimize performance and reduce package size" (#1352)
    • use for loop instead of while to avoid mutate array iteself (#1348)
    • change log logic inversion (#1329)
    • driver-universal support CSS custom properties (#1335)
    • Optimize performance (#1333)
    • Refactor compress variables (#1332)
    • optimize performance and reduce package size (#1331)
    • Refactor core performance and size (#1300)
    • Apply some performance optimisation (#1330)
    • migrate scripts packages (#1325)
    • fix ssr style (#1324)
    • add rax-plugin-pwa (#1307)
    • Support component use separated css file (#1303)

    v1.0.9

    • v1.0.9 and update readme (#1320)
    • rax-scripts (#1299)
    • tansform jsx to html (#1304)
    • Optimize scheduler size and performance (#1309)
    • prop style array to Object.assign (#1313)
    • remove useless packages (#1305)
    • raxjs supports iife and cjs, pulling away from amd. (#1286)
    • plugin app add hash config (#1292)
    • Transfer miniapp related packages (#1294)
    • Add rax-set-native-props & rax-get-element-by-id (#1296)
    • transfer miniapp related packages to internal (#1290)
    • Multi pages support routeName (#1289)
    • add rpx2vw (#1283)
    • Fix ssr multi (#1275)
    • rax-engineering (#1239)
    • Feat enhance component plugin (#1235)
    • Feat mpa plugin (#1260)
    • Feat user config (#1253)
    • improve performance with clearing all children (#1254)
    • Feat fix minimize (#1238)
    • Refactor new context (#1184)
    • Feat common config (#1233)
    • Fix inline style (#1228)
    • improve driver dom performance for rpx (#1223)
    • fix change mp build dir (#1217)
    • add qrcode (#1215)
    • remove web-app index.html font-size (#1214)
    • rax 1.0 engineering (#1180)
    • Fix engineer error (#1213)
    • Feat optimize app template (#1210)
    • support cli api (#1209)
    • Merge remote-tracking branch 'origin/feat-rax-engineering' into feat-optimize-app-template (#1187)
    • Feat: update App Shell plugin (#1206)
    • revert: external rax (#1207)
    • Merge remote-tracking branch 'origin/feat-rax-engineering' into feat-add-mpapp (#1208)
    • fix document plugin public (#1202)
    • fix weex external (#1204)
    • add SSR client router initialComponent (#1200)
    • fix-com&api-config (#1199)
    • fix publicPath (#1198)
    • add ssr plugin client (#1196)
    • Feat app plugin update (#1195)
    • generate package.json (#1194)
    • add pwa (#1188)
    • The fix isValidElement method returns a Boolean value (#1191)
    • add api plugin (#1190)
    • add application template (#1189)
    • add universal API template (#1185)
    • Feat new initialization workflow (#1183)
    • version patch babel-plugin-transform-jsx-stylesheet (#1175)
    • Feat/universal app runtime (#1179)
    • Refactor/universal app shell loader (#1181)
    • fix: match search is not needed (#1166)
    • add dont remove className option (#1171)
    • Fix repeat packing rax in production mode when compat react (#1172)
    • Update event-handle.md (#1170)

    v1.0.8

    • Migration project deletion (#1143)
    • rax-scripts component-miniapp bug (#1164)
    • proxy for ssr dev server (#1137)
    • typo fix in docs (#1150)
    • rax scripts add postcss-plugin-rpx2vw (#1146)
    • Rax PWA (#1097)

    v1.0.7

    • react compatibility (#1116)
    • Feat create rax (#1114)
    • Remove weex generator and update readme (#1111)
    • Universal app (#1102)
    • improve creating & removing performace (#1089)
    • weixin mp props (#1080)
    • Add component scripts (#1069)
    • link render-helpers & Update rax.js (#1074)
    • fix: path error in windows (#1059)
    • filename typo (#1054)
    • fix readme import useImport from 'rax-use-import'; (#1055)
    • rax-use-router with history (#1029)
    • fix: style transform error (#1051)
    • component generator & universal build (#967)
    • support webview replace api (#1050)
    • fix(rax-scripts): command line option "--output-path" not working (#1045)
    • feat(rax-script): support .tsx files (#1043)
    • chore: remove atag from github (#1042)
    • publish rax-cli 1.2.1 (#1033)
    • fix: hack to avoid bug in windmill iOS 10 (#1038)
    • Support jsx file sturcuture resolve and remove dep of rax (#1034)
    • fix: import driver-dom error (#1037)
    • fix: vue denpendencies config (#1036)
    • rax-benchmark (#999)

    v1.0.4

    • fix: reducer only exec once when reducer set inner function component (#1027)
    • fix: scheduler change to setTimeout (#1024)
    • Fix miniapp plugin (#1016)
    • publish atag (#1011)

    v1.0.2

    • fix: style 'top: 0' can't update (#1006)
    • fix: set two state but re-render once (#992)
    • fix: send location.replace once (#1005)
    • fix: remove inputType judgement (#997)
    • hotfix/scroll-with-animation (#996) (#980)
    • rax-scripts 1.2.0 (#987)
    • add forwardRef (#989)
    • Make driver-weex works and bump rax-cli rax-scprits 1.1.0 (#986)
    • optimize text listener (#985)
    • fix broken link to browser driver (#981)
    • export react compatibility entry (#978)
    • Fix/rax scripts (#979)
    • fix: atag input value in iOS (#976)
    • rax-cli v1.0.0 (#972)
    Source code(tar.gz)
    Source code(zip)
Owner
Alibaba
Alibaba Open Source
Alibaba
🤖 The universal chatbot library based on React. Write once, launch Telegram, Facebook, Slack, ... every messenger with chatbots

Urban Bot The universal chatbot library based on React. Declarative. You don't need to know any messenger API, just write simple react components. Mul

Urban Bot 318 Jan 11, 2022
React renderer for building user interfaces in Unity UI

React Unity React Unity is a way to build interactive UI in Unity3D using React. It can be used together with packages like Typescript, redux, i18next

React Unity 323 Jan 22, 2022
Flareact is an edge-rendered React framework powered by Cloudflare Workers.

Edge-rendered React framework built for Cloudflare Workers

Flareact 1.4k Jan 20, 2022
React JSX Renderer is a React Component for rendering JSX to React nodes.

React JSX Renderer A React Component for Rendering JSX. Description React JSX Renderer is a React Component for rendering JSX to React nodes.

Sho Kusano 40 Jan 9, 2022
🇨🇭 A React renderer for Three.js (web and react-native)

react-three-fiber react-three-fiber is a React renderer for threejs on the web and react-native. npm install three react-three-fiber These demos are r

Poimandres 16.5k Jan 23, 2022
🍙 A minimal implementation of react-dom using react-reconciler

react-tiny-dom react-tiny-dom is a minimal implementation of react-dom as custom renderer using React 16 official Renderer API. The purpose of this pr

Jiayi Hu 446 Jan 15, 2022
🇨🇭 A React renderer for Three.js (web and react-native)

react-three-fiber react-three-fiber is a React renderer for threejs on the web and react-native. npm install three react-three-fiber These demos are r

Poimandres 16.5k Jan 22, 2022
[ Unmaintained due to raphamorim/react-ape ] React Renderer for low memory applications

React-TV · react-tv: React Renderer for low memory applications. react-tv-cli: React Packager for TVs. Currently under development. import React from

Raphael Amorim 1.9k Jan 23, 2022
React PDF viewer - A React component to view a PDF document

A React component to view a PDF document. It's written in TypeScript, and powered by React hooks completely.

React PDF Viewer 741 Jan 21, 2022
Osd-react-renderer - A custom React renderer for OpenSeadragon

osd-react-renderer A custom React renderer for OpenSeadragon viewer, built using

Lunit Inc. 2 Jan 16, 2022
🌈 React for interactive command-line apps

React for CLIs. Build and test your CLI output using components. Ink provides the same component-based UI building experience that React offers in the

Vadim Demedes 17.6k Jan 19, 2022
render React components to Sketch ⚛️💎

render React components to Sketch; tailor-made for design systems Quick-start ??‍ First, make sure you have installed Sketch version 50+, & a recent n

Airbnb 14.9k Jan 13, 2022
⚛️ A React renderer for Figma

React Figma A React renderer for Figma. Use React components as a source for your designs. ?? Compatible with react-native, react-sketchapp, react-pri

React Figma 1.9k Jan 16, 2022
Create amazing 360 and VR content using React

React 360 React 360 is a framework for the creation of interactive 360 experiences that run in your web browser. It pairs modern APIs like WebGL and W

Facebook Archive 8.6k Jan 17, 2022
⃝ A react null renderer

Nothing to see here ... Quite so. This package allows you to bring Reacts high-level component abstraction to Node, or wherever you need it. Why not m

Poimandres 607 Jan 13, 2022
📄 Create PDF files using React

React renderer for creating PDF files on the browser and server Lost? This package is used to create PDFs using React. If you wish to display existing

Diego Muracciole 10.3k Jan 21, 2022
A React renderer for Hardware.

React Hardware React Hardware enables you to build firmata-based hardware applications using a consistent developer experience based on JavaScript and

Dustan Kasten 784 Dec 29, 2021
🎥 Create videos programmatically in React

Join the Discord Remotion is a suite of libraries building a fundament for creating videos programmatically using React. Why create videos in React? L

Jonny Burger 9k Jan 20, 2022
React Bridge to the ART Drawing Library

Note: This package is now part of the facebook/react monorepo. React ART React ART is a JavaScript library for drawing vector graphics using React. It

React Community 2k Jan 20, 2022