amis框架实现sdk中使用tsx

文章讲述了在开发过程中遇到的问题,即使用React的amis框架和SDK方式搭建应用时,自定义组件需要写两套。作者向amis官方提出了这个问题,官方建议在amis项目中构建自定义组件并集成到SDK。作者分享了解决Windows环境下打包问题的技巧,并提供了实现效果的说明。

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中实现效果
在这里插入图片描述

<think>嗯,用户想在Vue3项目中使用Amis框架,需要示例代码或教程。首先,我得确认Amis是否支持Vue3。根据之前的引用,用户提供的参考中有提到Vue的示例代码,但那是Vue2的,比如引用[1]里的代码用的是`export default`和`data()`函数,这是Vue2的写法。不过Amis官方可能有更新支持Vue3的情况,需要确认。 接下来,我应该检查Amis的官方文档是否有Vue3的相关说明。假设官方已经支持,那么需要给出安装步骤和示例代码。通常,在Vue3中使用第三方库,可能需要使用`vue-amis`的npm包,或者直接通过CDN引入。然后,在组件中注册并使用Amis的组件。 另外,用户提到示例代码和教程,可能需要分步骤说明,比如创建Vue3项目、安装依赖、配置Amis、编写示例组件等。需要确保代码的语法正确,比如使用Composition API或者Options API,但Vue3更推荐Composition API,不过为了兼容,可能两者都可以。 然后,考虑到用户可能需要更多的资源,应该提供官方文档链接,以及可能的GitHub示例或社区教程。同时,用户可能遇到的问题,比如配置不生效、样式问题等,可以给出一些常见解决办法,比如检查引入路径、版本兼容性等。 最后,生成相关问题,比如如何集成Amis表单,如何自定义组件,性能优化等,帮助用户进一步探索。</think>### Vue3集成Amis框架的步骤及示例 在Vue3项目中使用Amis框架需要以下步骤,这里提供两种实现方式: **方法一:通过CDN直接引入** ```html <template> <div id="amis-root"></div> </template> <script setup> import { onMounted } from 'vue'; onMounted(() => { const amis = window.amisRequire('amis/embed'); const amisJSON = { type: 'page', body: { type: 'form', controls: [ { type: 'text', name: 'username', label: '用户名' } ] } }; amis.embed('#amis-root', amisJSON); }); </script> ``` **方法二:通过npm包安装** 1. 安装依赖: ```bash npm install amis @fex/amis-embed-vue3 ``` 2. 创建Amis组件: ```vue <template> <AmisRenderer :schema="schema" /> </template> <script setup> import { AmisRenderer } from '@fex/amis-embed-vue3'; const schema = { type: 'page', body: { type: 'crud', api: '/api/mock/data', columns: [ { name: 'id', label: 'ID' }, { name: 'name', label: '名称' } ] } }; </script> ``` **重要配置说明**: 1. 需要配置Vue的全局组件(在main.js中): ```javascript import { createApp } from 'vue' import App from './App.vue' import { install as AmisEmbed } from '@fex/amis-embed-vue3' const app = createApp(App) app.use(AmisEmbed) app.mount('#app') ``` **官方推荐资源**: - Amis官方文档中Vue集成章节[^2] - Amis示例库中的Vue3集成分支(GitHub) - 社区实现的vue3-amis-template模板项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值