Code Monkey home page Code Monkey logo

tmagic-editor's Introduction

TMagic

TMagic 可视化搭建平台。

  • 💪 Vue 3.0 Composition API
  • 🔥 Written in TypeScript

文档

文档请移步 https://tencent.github.io/tmagic-editor/docs/index.html

目前文档仍在逐步完善中,如有疑问欢迎给我们提 issue。

Playground 体验

https://tencent.github.io/tmagic-editor/playground/index.html

环境准备

node.js >= 18

pnpm >= 8

先安装 pnpm

$ npm install -g pnpm

然后安装依赖

$ pnpm bootstrap

运行项目

执行命令

$ pnpm playground

最后在浏览器中打开

http://localhost:8098/tmagic-editor/playground/

即可得到一个魔方编辑器示例项目

magic-admin

已迁移至 https://github.com/vft-magic/tmagic-admin

项目介绍

在本项目中,我们核心内容,是包含在 packages/editor 中的编辑器,以及 runtimepackages/ui 提供的各个前端框架相关的 runtime 和 ui。

  • packages 目录中提供的内容,我们都以 npm 包形式输出,开发者可以通过安装对应的包来使用。
  • runtime 是我们提供的编辑器活动页和编辑器模拟器运行的页面项目示例。可以直接使用,也可以参考并自行实现。
  • playground 是一个简单的编辑器项目示例。即使用了 packagesruntime 内容的集成项目。开发者可以参考 playground,使用魔方提供的能力实现一个满足业务方需求的编辑器。

编辑器

通过安装和使用 @tmagic/editor,可以快速搭建起一个魔方编辑器。

魔方demo图

页面渲染

runtime 是魔方提供的页面渲染环境。通过加载在编辑器中产出的 DSL,即可得到魔方编辑器希望拥有的最终产物,一个活动页面。我们提供了 vue2/vue3/react 几个版本的 runtime。

通过魔方编辑器和 runtime 渲染,以及通过自定义的复杂组件开发,可以在魔方项目上,搭建出复杂而精美的页面。

表单渲染

魔方的表单配置项,使用了我们开发的基于 element-ui 的 @tmagic/form,@tmagic/form 也可以在其他地方单独使用。支持渲染 JS Schema 提供的表单描述。

使用

playground 的示例项目,就是为开发者提供的基础应用示例。开发者可以基于此或者参考自行实现,搭建一个基于魔方的可视化搭建平台。

tmagic-editor主要定位是搭建生成移动端H5页面,如果有搭建PC端低代码平台的需求,可以了解一下腾讯出品的另外一个低代码平台:无极低代码平台

参与贡献

如果你有好的意见或建议,欢迎给我们提 Issues 或 Pull Requests,为提升魔方可视化编辑器开发体验贡献力量。
详见:CONTRIBUTING.md

贡献者

欢迎入群交流

tmagic-editor's People

Contributors

9aoyang avatar capchen avatar iainzhuo avatar isensen avatar jia000 avatar khuntoriia avatar little-littleprogrammer avatar lmf avatar qiangmouren avatar switer avatar wangminghua111 avatar wuliupo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tmagic-editor's Issues

处于蒙层里面自定义组件的方法无法被自定义事件触发

screenshot-20220718-115420

screenshot-20220718-120410

自定义事件“抽奖成功”(app.emit('draw:success', node)) --> 触发蒙层弹窗方法“打开蒙层”(成功) --> 再触发“中奖弹窗”组件自定义方法“弹窗警告”(失败)

原因调试定位到:
package/core/src/App.ts里面的bindEvents()方法判断响应方法的地方,204行:
if (typeof toNode.instance?.[methodName] === 'function') {

这里的toNode.instance 为 undefined,所以无法调用对应的方法:toNode.instance?.[methodName]

但是如果修改一下bindEvents() 里面代码,把上面的判断条件放到setTimeout里面调用toNode.instance?.[methodName]可以调用到。

现在问题是:
能不能在不修改package/core里面的代码情况下,实现自定义组件的自定义事件触发组件方法?

使用官方例子进行app.use(MagicEditor)时报错

image
image

报错路径是:
src/main.ts:
import MagicEditor from '@tmagic/editor';
...
app.use(MagicEditor);
->

@tmagic/editor/dist/tmagic-editor.es.js:
import serialize from 'serialize-javascript';
->

serialize-javascript/index.js:
var randomBytes = require('randombytes');
->

randombytes/browser.js:
var Buffer = require('safe-buffer').Buffer
->Uncaught TypeError: Cannot read properties of undefined (reading 'from')

报错信息:

@tmagic_editor.js?v=c6492491:707 Uncaught TypeError: Cannot read properties of undefined (reading 'from')

Uncaught TypeError: Cannot read properties of undefined (reading 'from')
at node_modules/safe-buffer/index.js (@tmagic_editor.js?v=c6492491:707:16)
at __require2 (chunk-TMRFOBSY.js?v=9ed9471b:47:50)
at node_modules/randombytes/browser.js (@tmagic_editor.js?v=c6492491:764:18)
at __require2 (chunk-TMRFOBSY.js?v=9ed9471b:47:50)
at node_modules/serialize-javascript/index.js (@tmagic_editor.js?v=c6492491:798:23)
at __require2 (chunk-TMRFOBSY.js?v=9ed9471b:47:50)
at @tmagic_editor.js?v=c6492491:2893:43

[bug] runtime/vue3目录下执行yarn build命令报错

bug描述

cd runtime/vue3目录下执行yarn build报错,报错如下:

yarn run v1.22.17
$ node scripts/build.js && vite build
node:internal/modules/cjs/loader:936
  throw err;
  ^

Error: Cannot find module 'recast'

自我诊断

yarn build后会执行runtime/scripts/generateEntry.js,脚本中的const { parse, prettyPrint, types } = require('recast');命令所需依赖在子目录中,而在当前目录找不到该依赖导致报错

playground启动vue2报错

本地启动runtime-vue2
修改如下:
package.json "playground": "lerna run dev --scope tmagic-playground --scope runtime-vue2 --parallel", 默认vue3 改为runtime-vue2
playground\src\pages\Editor.vue const RUNTIME_PATH = '/tmagic-editor/playground/runtime/vue2'; 默认vue3改为vue2
npm run playground 启动正常,页面中间的工作区域为空。

控制台报错如下:
GET http://localhost:8101/tmagic-editor/playground/runtime/vue2/assets/event.js net::ERR_ABORTED 404 (Not Found)

[Vue warn]: Error in data(): "TypeError: Cannot read properties of null (reading 'config')"
found in
--->


TypeError: Cannot read properties of null (reading 'config')
[Vue warn]: Error in render: "TypeError: e.display is not a function"

以上,麻烦看一下。
谢谢!

node 版本过高无法启动源码调试

环境如下
CPU: M1 max
系统:MacOS Monterey
node: v16.13.2
npm: 8.1.2
yarn: 1.22.17

运行 yarn 安装依赖后 运行 yarn bootstrap 报错如下

lerna notice cli v4.0.0
lerna info Bootstrapping 14 packages
lerna info Installing external dependencies
lerna info hoist Installing hoisted dependencies into root
lerna info hoist Pruning hoisted dependencies
lerna info hoist Finished pruning hoisted dependencies
lerna ERR! npm install exited 1 in 'tmagic'
lerna ERR! npm install stderr:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/vue
npm ERR!   peer vue@">= 2.5 < 3" from @vue/[email protected]
npm ERR!   node_modules/@vue/composition-api
npm ERR!     @vue/composition-api@"1.0.5" from the root project
npm ERR!     peerOptional @vue/composition-api@"^1.0.0-rc.1" from [email protected]
npm ERR!     packages/editor/node_modules/element-plus/node_modules/@vueuse/core/node_modules/vue-demi
npm ERR!       vue-demi@"*" from @vueuse/[email protected]
npm ERR!       packages/editor/node_modules/element-plus/node_modules/@vueuse/core
npm ERR!         @vueuse/core@"^8.2.6" from [email protected]
npm ERR!         packages/editor/node_modules/element-plus
npm ERR!       1 more (@vueuse/shared)
npm ERR!     1 more (vue-demi)
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! @vue/vue3-jest@"^27.0.0-alpha.4" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: [email protected]
npm ERR! node_modules/vue
npm ERR!   peer vue@"^3.0.0-0" from @vue/[email protected]
npm ERR!   node_modules/@vue/vue3-jest
npm ERR!     @vue/vue3-jest@"^27.0.0-alpha.4" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 

比较一般

这是什么垃圾?组件还要自己写?不开源?被百度的amis甩十八条街

magic-admin中服务端运行报错

node版本:14.19.3
安装依赖无任何报错
报错信息:
/magic-admin/server/node_modules/_ts-node@8.10.2@ts-node/src/index.ts:434
return new TSError(diagnosticText, diagnosticCodes)
^
TSError: ⨯ Unable to compile TypeScript:
src/service/act.ts:185:9 - error TS2322: Type '{ actId: number; }' is not assignable to type 'AllowArray<Fn | Literal | Where | Json | WhereAttributeHash | { [or]: AllowArray<AllowArray<Fn | Literal | Where | ... 4 more ... | { ...; }>>; } | { ...; } | { ...; }>'.
Property 'clone' is missing in type '{ actId: number; }' but required in type 'Fn'.

.....

node_modules/sequelize/types/model.d.ts:52:3
52 where?: WhereOptions;
~~~~~
The expected type comes from property 'where' which is declared here on type 'FindOptions'
src/service/act.ts:346:14 - error TS2339: Property 'toJSON' does not exist on type 'ActInfo'.

346 return act.toJSON() as ActInfoIncludePage;

安装失败

Install fail! Error: [@tmagic/editor@next] Can't find package @tmagic/editor@next

monaco-editor依赖是否有必要?

代码编辑功能使用频率本来不高(或者只需一个简单的json/js编辑器),build打包出来的文件大小,monaco-editor占比却非常高,包含各种无用语言的scripts文件。

MagicEditor import error

import MagicEditor from "@tmagic/editor";

Uncaught Error: Secure random number generation is not supported by this browser.
Use Chrome, Firefox or Internet Explorer 11
at oldBrowser (browser.js:12:9)
at generateUID (index.js:38:17)
at node_modules/_serialize-javascript@6.0.0@serialize-javascript/index.js (index.js:13:27)
at __require2 (chunk-JZING22Y.js?v=cd9a69f8:47:50)
at dep:@tmagic_editor:1:1

npm run playground报错

下面是错误提示新消息

> [email protected] playground
> lerna run dev --scope tmagic-playground --scope runtime-vue3 --parallel

lerna notice cli v4.0.0
lerna notice filter including ["tmagic-playground","runtime-vue3"]
lerna info filter [ 'tmagic-playground', 'runtime-vue3' ]
lerna info Executing command in 2 packages: "npm run dev"
runtime-vue3: > [email protected] dev
runtime-vue3: > npm run build && npm run serve
tmagic-playground: > [email protected] dev
tmagic-playground: > vite
runtime-vue3: > [email protected] build
runtime-vue3: > export NODE_OPTIONS=--openssl-legacy-provider && node scripts/build.js && vite build
runtime-vue3: node:internal/modules/cjs/loader:936
runtime-vue3:   throw err;
runtime-vue3:   ^
runtime-vue3: Error: Cannot find module 'recast'
runtime-vue3: Require stack:
runtime-vue3: - /Users/IvanChu/Documents/angularjs2_demo/tmagic-editor/runtime/scripts/generateEntry.js
runtime-vue3: - /Users/IvanChu/Documents/angularjs2_demo/tmagic-editor/runtime/vue3/scripts/build.js
runtime-vue3:     at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
runtime-vue3:     at Function.Module._load (node:internal/modules/cjs/loader:778:27)
runtime-vue3:     at Module.require (node:internal/modules/cjs/loader:999:19)
runtime-vue3:     at require (node:internal/modules/cjs/helpers:102:18)
runtime-vue3:     at Object.<anonymous> (/Users/IvanChu/Documents/angularjs2_demo/tmagic-editor/runtime/scripts/generateEntry.js:24:39)
runtime-vue3:     at Module._compile (node:internal/modules/cjs/loader:1097:14)
runtime-vue3:     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10)
runtime-vue3:     at Module.load (node:internal/modules/cjs/loader:975:32)
runtime-vue3:     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
runtime-vue3:     at Module.require (node:internal/modules/cjs/loader:999:19) {
runtime-vue3:   code: 'MODULE_NOT_FOUND',
runtime-vue3:   requireStack: [
runtime-vue3:     '/Users/IvanChu/Documents/angularjs2_demo/tmagic-editor/runtime/scripts/generateEntry.js',
runtime-vue3:     '/Users/IvanChu/Documents/angularjs2_demo/tmagic-editor/runtime/vue3/scripts/build.js'
runtime-vue3:   ]
runtime-vue3: }
runtime-vue3: Node.js v17.6.0
runtime-vue3: npm notice 

根据Runtime教程运行后报错

根据https://tencent.github.io/tmagic-editor/docs/tutorial/runtime.html教程搭建项目,runtime项目以打包产物的形式放入editor项目的public文件夹下,正常运行后,添加组件成功,但有以下现象:
1、新建页面后,滚动鼠标滚轮,报错:
Uncaught Error: page 未初始化
at StageMask.mouseWheelHandler (StageMask.ts:324:27)
2、焦点在页面的情况下,拖动,报错:
Uncaught (in promise) Error: 没有配置或者配置缺少id值
at Editor$1.update (editor.ts:391:28)
at dispatch (compose.ts:27:32)
at compose.ts:19:12
at doAction (BaseService.ts:53:34)
at BaseService.ts:147:37
at Editor$1.doTask (BaseService.ts:181:13)
at Editor$1.value (BaseService.ts:156:18)
at Editor$1.sort (editor.ts:464:16)
at dispatch (compose.ts:27:32)
at compose.ts:19:12
3、修改组件高度,能改变并且反馈到右侧样式面板,反之,没有反应
4、组件依旧如教程helloworld一般,不能拖动

有时刷新会stage空白

执行的测试runtime: vue3 runtime

一直刷新页面,有时runtime下的vue3的playground App.vue的onMounted 会早于 StageRender里的 loadHandler执行,造成onMounted 时, window还未挂载magic, 导致不会执行onRuntimeReady, 导致页面有时空白.

另问一下: 为什么 runtime vue3里的playground里的App.vue ,要使用:

const componentUrl = '/tmagic-editor/playground/runtime/vue3/assets/components.js';
import(componentUrl)

为什么不像page的 app.vue里一直直接使用

import entry from '../comp-entry';
const { components, plugins } = entry;

是有其它原因吗?

我把这种加载方式改掉, 然后onMounted 里添加

window.addEventListener('message', ({ data }) => {
        if (!data.tmagicRuntimeReady) {
          return;
        }
        window.magic?.onRuntimeReady({
          getApp() {
            return app;
          },
...

就可以解决这个有时白屏的现象, 但是没有发pr, 不知道原来的写法是不是有别的用途

本地调试 magic admin server 提示 Unable to compile TypeScript

前置操作:

  1. 修改 db 配置
  2. npm i 安装依赖
  3. npm run dev

报错信息:

[email protected] dev
nodemon

[nodemon] 1.19.4
[nodemon] to restart at any time, enter rs
[nodemon] watching dir(s): src/**/*
[nodemon] watching extensions: ts
[nodemon] starting ts-node -r tsconfig-paths/register src/index.ts --files

/Users/yuzf/walle/tmagic-editor/magic-admin/server/node_modules/ts-node/src/index.ts:434
return new TSError(diagnosticText, diagnosticCodes)
^
TSError: ⨯ Unable to compile TypeScript:
src/index.ts:26:9 - error TS2354: This syntax requires an imported helper but module 'tslib' cannot be found.

26 const { PORT } = process.env;
~~~~

at createTSError (/Users/yuzf/walle/tmagic-editor/magic-admin/server/node_modules/ts-node/src/index.ts:434:12)
at reportTSError (/Users/yuzf/walle/tmagic-editor/magic-admin/server/node_modules/ts-node/src/index.ts:438:19)
at getOutput (/Users/yuzf/walle/tmagic-editor/magic-admin/server/node_modules/ts-node/src/index.ts:578:36)
at Object.compile (/Users/yuzf/walle/tmagic-editor/magic-admin/server/node_modules/ts-node/src/index.ts:775:32)
at Module.m._compile (/Users/yuzf/walle/tmagic-editor/magic-admin/server/node_modules/ts-node/src/index.ts:858:43)
at Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Object.require.extensions.<computed> [as .ts] (/Users/yuzf/walle/tmagic-editor/magic-admin/server/node_modules/ts-node/src/index.ts:861:12)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)

node 版本:v16.15.0
npm 版本:8.5.5
操作系统:Darwin MacBook-Pro.local 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6153.141.2.2~1/RELEASE_X86_64 x86_64

有没有考虑过生成代码

阿里云的lowcode-engine相关文章低代码渲染那些事里说:

渲染方式主要有两个大类:

  • 出码渲染
  • 运行时渲染
    其中在阿里内部大多数低代码平台中,我们主要使用的都是运行时渲染,包括宜搭低代码产品,只有少部分对性能要求较高的产品才会使用出码渲染的方式。

tmagic-editor 没有考虑过出码渲染?

文档容易崩

!文档容易崩!文档容易崩!文档容易崩!文档容易崩
image

自定义组件-疑问

再次打扰,抱歉

我想在自定义组件中使用其他UI库,如将ElementPlus中的Image组件包装为自定义组件

那我应该怎样做才能保证其elementPlus的ui能够正确渲染呢?

我试过在组件中引入了elementplus、在runtime中引入、在主体项目中引用,都无法正确渲染,希望能得到解答,谢谢!

6$WW%1W_G_BT_E{~37J4769

(W3W}L0I7YD3JBZDC 32$CN

可以考虑插件和组件支持按端过滤

组件列表,展示根据当前编辑的模式进行加载相应组件,避免有些定制化组件在pc或者mobile下不支持的问题

比如,组件在pc模式下的显示控制,
专属于pc模式的组件,
专属于mobile模式下的组件

按照官网快速开始,起不来

按照官网的快速开始,运行不起来

https://tencent.github.io/tmagic-editor/docs/guide/installation.html#引入-tmagic-editor

1. vue create myapp
2. npm install @tmagic/editor@latest -S  npm install @tmagic/form@latest element-plus -S
3. 在 main.js 引入
4. npm run build 

错误如下
 error  in ./node_modules/@tmagic/form/dist/tmagic-form.es.js

Module parse failed: Unexpected token (113:18)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/conc
epts#loaders
|   }
|   return config(mForm, {
>     values: mForm?.initValues || {},
|     model: props.model,
|     parent: mForm?.parentValues || {},

 @ ./src/main.ts 11:0-37 23:8-17
 @ multi ./src/main.ts

使用 magic-admin/server端,发布项目页面,浏览器控制台报错

使用 magic-admin/server端,发布项目页面,打开浏览器控制台报错

系统环境

  • NodeJs v16.13.0
  • @vue/cli 5.0.6
  • 谷歌浏览器:101.0.4951.54(正式版本) (arm64)

问题描述

  • 执行 setup.sh 脚本
  • 运行 magic-admin/server 端, 以开发环境运行 npm run dev
  • 访问 localhost:3001 中 web端页面,新建活动并编辑页面保存并发布。
  • 访问项目页面 http://localhost:3001/publish/hello.html
  • 使用 magic-admin 自带的 runtime 模板渲染项目页面报错。

使用 magic-admin 自带的 runtime 模板运行项目页面报错

生成的项目页面

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Magic App</title>
    <script type="module" src="./uiconfig_hello.js"></script>
    <script src="https://unpkg.com/vue@next/dist/vue.runtime.global.js"></script>
    <script
      type="module"
      crossorigin
      src="/runtime/vue3/assets/page.js"
    ></script>
    <link rel="modulepreload" href="/runtime/vue3/assets/vendor.3f0d9265.js" />
    <link
      rel="modulepreload"
      href="/runtime/vue3/assets/resetcss.b08d57c8.js"
    />
    <link
      rel="modulepreload"
      href="/runtime/vue3/assets/plugin-vue_export-helper.3811b543.js"
    />
    <link rel="modulepreload" href="/runtime/vue3/assets/components.js" />
    <link rel="stylesheet" href="/runtime/vue3/assets/resetcss.52e41e6b.css" />
    <link rel="stylesheet" href="/runtime/vue3/assets/page.6c73043b.css" />
    <script>
      Vue.config.productionTip = false;
    </script>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

生成项目页面对应的 DSL描述文件

window.magicUiconfig=[{type:"app",id:17,items:[{id:19,type:"page",name:"hello",title:"helloWorld",style:{height:"728",width:"375",position:"relative",layout:"absolute",left:0,top:0,right:"",bottom:"",backgroundImage:"",backgroundColor:"",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"",fontWeight:"",transform:{rotate:"",scale:""}},items:[{type:"text",id:"text_5222",style:{position:"absolute",width:"100",height:"auto",top:121.44186401367188,left:83.43206787109375,right:"",bottom:"",backgroundImage:"",backgroundColor:"",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"",fontWeight:"",transform:{rotate:"",scale:""}},name:"文本",text:"HelloWorld",multiple:!0,events:[],created:""}],layout:"absolute",events:[],created:""}],abTest:[]}];

导出功能

你好,
看了Playground演示页面,页面被解析成了JSON格式,引擎能否支持导出.vue 或者 .jsx格式的web代码?

关于packages/form使用

请教一下关于packages/form使用,看了一下目前的相关文档没有说明和是否能直接在playground引入使用,谢谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.