diff --git a/components/image/__tests__/__snapshots__/demo.test.js.snap b/components/image/__tests__/__snapshots__/demo.test.js.snap
index 825c78a83f..9d8d19c3f3 100644
--- a/components/image/__tests__/__snapshots__/demo.test.js.snap
+++ b/components/image/__tests__/__snapshots__/demo.test.js.snap
@@ -7,6 +7,18 @@ exports[`renders ./components/image/demo/basic.vue correctly 1`] = `
`;
+exports[`renders ./components/image/demo/controlledPreview.vue correctly 1`] = `
+

diff --git a/components/image/demo/controlledPreview.vue b/components/image/demo/controlledPreview.vue
new file mode 100644
index 0000000000..5a5239645b
--- /dev/null
+++ b/components/image/demo/controlledPreview.vue
@@ -0,0 +1,47 @@
+
+---
+order: 4
+title:
+ zh-CN: 受控的预览
+ en-US: Controlled Preview
+---
+
+## zh-CN
+
+可以使预览受控。
+
+## en-US
+
+You can make preview controlled.
+
+
+
+
+
+
setVisible(true)">show image preview
+
+
+
+
diff --git a/components/image/demo/index.vue b/components/image/demo/index.vue
index 6131ffad9f..603251fa9e 100644
--- a/components/image/demo/index.vue
+++ b/components/image/demo/index.vue
@@ -4,6 +4,7 @@
+
@@ -12,6 +13,7 @@ import Basic from './basic.vue';
import Fallback from './fallback.vue';
import Placeholder from './placeholder.vue';
import PreviewGroup from './previewGroup.vue';
+import ControlledPreview from './controlledPreview.vue';
import CN from '../index.zh-CN.md';
import US from '../index.en-US.md';
@@ -24,6 +26,7 @@ export default defineComponent({
Fallback,
Placeholder,
PreviewGroup,
+ ControlledPreview,
},
});