Ini adalah editor kode reaksi online yang dapat menjalankan kode React secara real time, mendukung pengenalan dinamis file khusus dan paket ketergantungan pihak ketiga, mendukung TS, TSX, dan dapat tertanam dalam proyek.
Contoh dasar
Contoh Ahooks
Contoh Ant-Design-Charts
Contoh Antd
Mungkin ada beberapa perubahan API dan fitur baru sebelum versi 1.0. Saya akan memperbaiki dan menstabilkannya sesegera mungkin. Jika Anda tertarik, Anda dapat memperhatikan.
npm install react-exercise-playground --save
# or
pnpm install react-exercise-playground --save import { Playground } from 'react-exercise-playground'
export const Demo1 = ( ) => {
return < Playground />
}
Playgroundadalah komponen halaman, yang invasif ke lingkungan host saat digunakan (beberapa JS dan CSS akan dimuat secara dinamis dan hash URL akan diubah secara default. Anda dapat membatalkan perubahan ke URL dengan mengkonfigurasi propertisaveOnUrl={false}).
PlaygroundSandbox adalah komponen yang memiliki Playground kotak pasir, dengan fungsi dan item konfigurasi yang sepenuhnya konsisten, dan sepenuhnya terisolasi dari lingkungan host.
Jika Anda hanya digunakan dalam dokumen atau proyek, disarankan untuk menggunakan komponen PlaygroundSandbox .
Perintah Kutipan: import {PlaygroundSandbox} from 'react-exercise-playground/PlaygroundSandbox'
PlaygroundSandbox akan mengunduh paket dari CDN, dengan volume hanya 10kb+, dan 2kb+ setelah GZIP
Paket lengkap akan ditambahkan di masa mendatang, yang dapat digunakan tanpa lingkungan jaringan eksternal, dan volumenya akan jauh lebih besar.
Kode contoh:
import { PlaygroundSandbox } from 'react-exercise-playground'
// import {PlaygroundSandbox} from 'react-exercise-playground/PlaygroundSandbox'
export const Demo2 = ( ) => {
const files = {
'App.tsx' : `import {title} from './const'
function App() {
return <h1>this is {title}</h1>
}
export default App
` ,
'const.ts' : {
code : 'export const title = "demo2"' ,
} ,
}
return (
< >
< h1 >作为组件使用: </ h1 >
< PlaygroundSandbox
showHeader = { false }
showCompileOutput = { false }
fileSelectorReadOnly
width = { 700 }
height = { 400 }
files = { files }
border
theme = 'dark'
options = { {
lineNumbers : false ,
} }
/>
< div style = { { height : '60vh' } } > </ div >
< div >滚动到可视范围内才会加载</ div >
< PlaygroundSandbox
showHeader = { false }
showCompileOutput = { false }
fileSelectorReadOnly
width = { 700 }
height = { 400 }
files = { files }
border
theme = 'dark'
options = { {
lineNumbers : false ,
} }
/>
</ >
)
}| Nama | Jenis | Bawaan | Keterangan |
|---|---|---|---|
| lebar | String 丨 Nomor 丨 Tidak ditentukan | 100VW | lebar |
| tinggi | String 丨 Nomor 丨 Tidak ditentukan | 100VH | tinggi |
| tema | 'Gelap' 丨 'terang' 丨 tidak ditentukan | 'lampu' | tema |
| Showheader | Boolean 丨 tidak ditentukan | BENAR | Apakah akan menampilkan kepala |
| berbatasan | Boolean 丨 tidak ditentukan | PALSU | Apakah akan menampilkan perbatasan |
| ShowFileselector | Boolean 丨 tidak ditentukan | BENAR | Apakah akan menampilkan tab file |
| FileSelectorreadonly | Boolean 丨 tidak ditentukan | PALSU | Apakah tab file hanya dibaca? |
| ShowCompileOutput | Boolean 丨 tidak ditentukan | BENAR | Apakah akan menampilkan kode yang dikompilasi |
| Defaultsizes | Nomor [] 丨 Tidak ditentukan | [100.100] | Skala Lebar Area Editor dan Pratinjau |
| opsi | {linenumbers?: boolean; fontsize ?: number; tabsize ?: number} 丨 tidak ditentukan | belum diartikan | Konfigurasi Editor |
| file | Mengajukan | Obyek | Kode Inisialisasi |
| Importmap | {Impor: Rekam <String, String>} | DefaultImportMap | Inisialisasi ImportMap |
| saveonurl | Boolean | BENAR | Adalah kode yang disimpan di URL |
| OnFileschange | (hash: string) => void | belum diartikan | Callback setelah kode diubah, parameter callback adalah nilai hash file |
interface File {
[ key : string ] :
| string
| {
code : string
active ?: boolean
hidden ?: boolean
}
}{
"imports" : {
"react" : " https://esm.sh/[email protected] " ,
"react-dom/client" : " https://esm.sh/[email protected] "
}
}Saya menulis artikel tentang prinsip dan proses implementasi komponen ini. Jika Anda tertarik, Anda dapat melihat React akhirnya memiliki taman bermain: editor online yang dapat menjalankan kode React secara real time