import React, { useState } from 'react';
import './App.css';
// 函数组件示例
function HeaderComponent() {
return (
Vite Design Mode Plugin Demo
);
}
// 类组件示例
class CounterComponent extends React.Component<{ initial?: number }> {
state = {
count: this.props.initial || 0,
};
render() {
return (
计数器示例
当前值: {this.state.count}
);
}
}
// 复杂嵌套组件示例
function FeatureSection() {
const features = [
{
id: 'source-mapping',
title: '源码映射',
description: '自动注入源码位置信息到DOM元素',
icon: '🗺️',
},
{
id: 'ast-analysis',
title: 'AST分析',
description: '基于Babel AST的精确组件识别',
icon: '🔍',
},
{
id: 'hot-reload',
title: '热更新',
description: '与Vite开发服务器无缝集成',
icon: '⚡',
},
];
return (
插件特性
{features.map(feature => (
{feature.icon}
{feature.title}
{feature.description}
))}
);
}
// 动态内容示例
function DynamicContent() {
const [isVisible, setIsVisible] = useState(false);
const [items, setItems] = useState(['项目1', '项目2', '项目3']);
return (
动态内容示例
{isVisible && (
{items.map((item, index) => (
-
{item}
))}
)}
);
}
// 表单组件示例
function ContactForm() {
const [formData, setFormData] = useState({
name: '',
email: '',
message: '',
});
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
alert(`表单提交成功!\n姓名: ${formData.name}\n邮箱: ${formData.email}`);
};
const handleChange = (
e: React.ChangeEvent
) => {
setFormData({
...formData,
[e.target.name]: e.target.value,
});
};
return (
);
}
// 主应用组件
function App() {
return (
Vite Plugin AppDev Design Mode
一个强大的Vite插件,为React开发者提供源码映射和可视化编辑功能
);
}
export default App;