amis框架实现sdk中使用tsx

1.开发过程中,由于自己和同事用的不同方式使用,本人使用react搭建的amis框架,同事用sdk使用方式搭建

2.开发过程中遇到问题,如果需求中出现amis无法满足的组件,需要自己进行自定义组件,而不同使用方式的amis需要写两套自定义组件去实现,分别是
sdk方式
// 自定义组件,props 中可以拿到配置中的所有参数,比如 props.label 是 'Name'
function CustomComponent(props) {
  let dom = React.useRef(null);
  React.useEffect(function () {
    // 从这里开始写自定义代码,dom.current 就是新创建的 dom 节点
    // 可以基于这个 dom 节点对接任意 JavaScript 框架,比如 jQuery/Vue 等
    dom.current.innerHTML = 'custom';
    // 而 props 中能拿到这个
  });
  return React.createElement('div', {
    ref: dom
  });
}
import * as React from 'react';
import {Renderer} from 'amis';

@Renderer({
  type: 'my-renderer',
  autoVar: true // amis 1.8 之后新增的功能,自动解析出参数里的变量
})
class CustomRenderer extends React.Component {
  render() {
    const {tip} = this.props;
    return <div>这是自定义组件:{tip}</div>;
  }
}

3.由于个人觉得写两套太麻烦,并且影响效率,所以向官网提了ISSURE,官方给的建议是在amis项目中render引入自己的组件,进行build,然后将生成的sdk拷贝给同事用即可。

4.在打包中遇到了一些问题,

比如说
1."windows"中报错’cp’ 不是内部或外部命令,也不是可运行的程序,解决方案:
(1)可以使用 git的 git bash here 来打包(ps:cp是linux的命令,在windows应该为copy)
(2)使用wsl

2.“NODE_ENV” is not recognized as an internal or external command, operable command or batch file
解决方案:npm install -g win-node-env 安装即可

5.具体操作

1.在amis 中src/renderers/test.tsx 创建自定义组件
这里可以参考官网’如何贡献代码链接
这里可以参考官网'如何贡献代码'
2.在amis项目中生成的sdk拷贝到替换sdk中sdk文件即可
用这里生成的sdk
sdk中替换如下:
在这里插入图片描述

6.实现效果

amis项目实现效果
在这里插入图片描述
sdk中实现效果
在这里插入图片描述

Amis Editor 是一个基于 Vue 的开源项目,它提供了一种简便的方式来在 Vue 应用使用易于编辑和管理的界面。 首先,我们需要确保安装了 Vue 和 Amis Editor 的依赖库。可以通过在项目添加相应的依赖项或使用包管理器(如npm或yarn)来安装这些依赖。 在 Vue 项目使用 Amis Editor 的第一步是引入 AmisAmis Editor 的库文件。可以通过添加以下代码来实现: import Vue from 'vue'; import amis from 'amis'; import 'amis/lib/themes/cxd.css'; import 'amis-editor/dist/index.css'; import Editor from 'amis-editor'; Vue.use(amis); Vue.use(Editor); 然后,我们可以在 Vue 组件使用 Amis Editor。例如,可以在一个 Vue 组件的 template 部分添加以下代码: <template> <amis-renderer :source="amisConfig" /> </template> <script> export default { data() { return { amisConfig: { type: 'page', title: 'Amis Editor Demo', body: { type: 'button', label: 'Click Me', actionType: 'dialog', dialog: { title: 'Dialog Title', body: { type: 'html', html: '<p>This is a dialog body</p>' } } } } }; } }; </script> 在上面的例子,我们创建了一个简单的 Amis Editor 配置对象,用于渲染一个包含一个按钮的页面。当按钮被点击时,将弹出一个带有标题和内容的对话框。 通过设置不同的配置选项,我们可以创建更复杂的界面和交互逻辑。Amis Editor 提供了丰富的组件和属性,可以根据需要进行定制。 总之,Vue 使用 Amis Editor 可以帮助开发者快速创建和管理易于编辑的界面,从而提高开发效率和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值