docs/migration/test-area-refactor-migration.md
TestPanel.vue 和基于条件的 AdvancedTestPanel 使用已被新的统一 TestAreaPanel 组件替代。本指南帮助您迁移现有代码。
packages/web/src/App.vue 已经完成迁移,作为参考示例。
packages/extension/src/App.vue 已经完成迁移到新的TestAreaPanel统一组件。
主要变更:
// 旧代码
import { TestPanelUI, AdvancedTestPanel } from '@prompt-optimizer/ui'
// 新代码
import { TestAreaPanel, useResponsiveTestLayout, useTestModeConfig } from '@prompt-optimizer/ui'
// 新增测试内容状态
const testContent = ref('')
const isCompareMode = ref(true)
// 新增响应式配置
const responsiveLayout = useResponsiveTestLayout()
const testModeConfig = useTestModeConfig(selectedOptimizationMode)
<!-- 旧代码 -->
<TestPanelUI v-if="!advancedModeEnabled" ... />
<AdvancedTestPanel v-else ... />
<!-- 新代码 -->
<TestAreaPanel
:optimization-mode="selectedOptimizationMode"
:advanced-mode-enabled="advancedModeEnabled"
v-model:test-content="testContent"
v-model:is-compare-mode="isCompareMode"
:input-mode="responsiveLayout.recommendedInputMode.value"
:control-bar-layout="responsiveLayout.recommendedControlBarLayout.value"
:button-size="responsiveLayout.smartButtonSize.value"
@test="handleTestAreaTest"
@compare-toggle="handleTestAreaCompareToggle"
>
<!-- 插槽内容 -->
</TestAreaPanel>
const handleTestAreaTest = async () => {
// 测试逻辑
}
const handleTestAreaCompareToggle = () => {
isCompareMode.value = !isCompareMode.value
}
如果在迁移过程中遇到问题,请参考:
packages/ui/src/components/types/test-area.tsdocs/components/test-area-style-guide.md