svelte5中使用react组件的方法

 更新时间:2025年01月13日 11:22:05   作者:流泪的鱼  
本文介绍了如何在Svelte 5项目中导入并使用React组件库,并提供了一个示例项目地址,此外,还添加了一个React组件库(如Ant Design)的示例,感兴趣的朋友跟随小编一起看看吧

svelte5中使用react组件

在svelet5中导入并使用react组件库, 示例项目地址:https://github.com/shenshouer/my-svelte-react

在svelte5中当前还有问题,无法将children传递到react中渲染

使用svletkit创建项目

$ npx sv create my-svelte-react
% npx sv create my-svelte-react
┌  Welcome to the Svelte CLI! (v0.6.10)
│
◇  Which template would you like?
│  SvelteKit minimal
│
◇  Add type checking with Typescript?
│  Yes, using Typescript syntax
│
◆  Project created
│
◇  What would you like to add to your project? (use arrow keys / space bar)
│  none
│
◇  Which package manager do you want to install dependencies with?
│  pnpm
│
◆  Successfully installed dependencies
│
◇  Project next steps ─────────────────────────────────────────────────────╮
│                                                                          │
│  1: cd my-svelte-react                                                   │
│  2: git init && git add -A && git commit -m "Initial commit" (optional)  │
│  3: pnpm run dev --open                                                  │
│                                                                          │
│  To close the dev server, hit Ctrl-C                                     │
│                                                                          │
│  Stuck? Visit us at https://svelte.dev/chat                              │
│                                                                          │
├──────────────────────────────────────────────────────────────────────────╯
│
└  You're all set!
$ cd my-svelte-react
$ pnpm install
$ pnpm dev

安装react相关依赖

$ pnpm i react react-dom
$ pnpm i --save-dev @types/react @types/react-dom
$ pnpm add @vitejs/plugin-react -D

修改vite.config.ts增加react支持

import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';  # <---- here
export default defineConfig({
	plugins: [sveltekit(), react()]        # <---- here
});

创建react svelte适配器ReactAdapter.svelte, 代码如下:

# src/lib/utils/ReactAdapter.svelte
<script lang="ts">
    import React from "react";
    import ReactDOM from "react-dom/client";
    import { onDestroy, onMount } from "svelte";
    const e = React.createElement;
    let container: HTMLElement;
    let root: ReactDOM.Root;
    onMount(() => {
        const { el, children, class: _, ...props } = $$props;
        try {
            root = ReactDOM.createRoot(container);
            root.render(e(el, props, children));
        } catch (err) {
            console.warn(`react-adapter failed to mount.`, { err });
        }
    });
    onDestroy(() => {
        try {
            if (root) {
                root.unmount();
            }
        } catch (err) {
            console.warn(`react-adapter failed to unmount.`, { err });
        }
    });
</script>
<div bind:this={container} class={$$props.class}></div>

目前此部分适配器有问题, children无法获取并且在react组件中渲染

参考:
props-and-restProps
issues

添加react组件库, 如 ant design

$ pnpm add antd
# +page.svelte
<script lang="ts">
    import { Button } from "antd";
    import ReactAdapter from "$lib/utils/ReactAdapter.svelte";
</script>
<ReactAdapter el={Button} type="primary">Hello, World!</ReactAdapter>

到此这篇关于svelte5中使用react组件的文章就介绍到这了,更多相关svelte5使用react组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React项目动态修改主题颜色的方案

    React项目动态修改主题颜色的方案

    这篇文章主要介绍了React项目动态修改主题颜色的方案,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2025-01-01
  • 教你快速搭建 React Native 开发环境

    教你快速搭建 React Native 开发环境

    这篇文章主要介绍了搭建 React Native 开发环境的详细过程,本文通过图文指令给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 适用于React Native 旋转木马应用程序介绍

    适用于React Native 旋转木马应用程序介绍

    这篇文章主要介绍了适用于React Native 旋转木马应用程序介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 详解React Angular Vue三大前端技术

    详解React Angular Vue三大前端技术

    当前世界中,技术发展非常迅速并且变化迅速,开发者需要更多的开发工具来解决不同的问题。本文就对于当下主流的前端开发技术React、Vue、Angular这三个框架做个相对详尽的探究,目的是为了解开这些前端技术的面纱,看看各自的庐山真面目。
    2021-05-05
  • React中的生命周期用法详解

    React中的生命周期用法详解

    这篇文章主要介绍了React中的生命周期用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • React props和state属性的具体使用方法

    React props和state属性的具体使用方法

    本篇文章主要介绍了React props和state属性的具体使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • React实现PDF预览功能与终极优化

    React实现PDF预览功能与终极优化

    在前端开发中,PDF 预览是个常见需求,本文主要来带大家认识一个基于 react-pdf 的自定义 PDF 预览组件 PDFView,感兴趣的小伙伴可以了解下
    2025-05-05
  • React实现todolist功能

    React实现todolist功能

    这篇文章主要介绍了React实现todolist功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • React Router 5.1.0使用useHistory做页面跳转导航的实现

    React Router 5.1.0使用useHistory做页面跳转导航的实现

    本文主要介绍了React Router 5.1.0使用useHistory做页面跳转导航的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 如何在React Native开发中防止滑动过程中的误触

    如何在React Native开发中防止滑动过程中的误触

    在使用React Native开发的时,当我们快速滑动应用的时候,可能会出现误触,导致我们会点击到页面中的某一些点击事件,误触导致页面元素响应从而进行其他操作,表现出非常不好的用户体验。
    2023-05-05

最新评论