diff --git a/example/app.json b/example/app.json
index 0656fb8a..f10d1c23 100644
--- a/example/app.json
+++ b/example/app.json
@@ -107,6 +107,7 @@
     "van-radio-group": "./dist/radio-group/index",
     "van-row": "./dist/row/index",
     "van-search": "./dist/search/index",
+    "van-search-demo": "./dist/search/demo/index",
     "van-sidebar": "./dist/sidebar/index",
     "van-sidebar-item": "./dist/sidebar-item/index",
     "van-slider": "./dist/slider/index",
diff --git a/example/pages/search/index.js b/example/pages/search/index.js
index bb7cf7a4..cc11dfda 100644
--- a/example/pages/search/index.js
+++ b/example/pages/search/index.js
@@ -1,45 +1,3 @@
 import Page from '../../common/page';
 
-Page({
-  data: {
-    value: ''
-  },
-
-  onChange(e) {
-    this.setData({
-      value: e.detail
-    });
-  },
-
-  onSearch() {
-    if (this.data.value) {
-      wx.showToast({
-        title: '搜索:' + this.data.value,
-        icon: 'none'
-      });
-    }
-  },
-
-  onClick() {
-    if (this.data.value) {
-      wx.showToast({
-        title: '搜索:' + this.data.value,
-        icon: 'none'
-      });
-    }
-  },
-
-  onCancel() {
-    wx.showToast({
-      title: '取消',
-      icon: 'none'
-    });
-  },
-
-  onClear() {
-    wx.showToast({
-      title: '清空',
-      icon: 'none'
-    });
-  }
-});
+Page();
diff --git a/example/pages/search/index.wxml b/example/pages/search/index.wxml
index 4c60d927..8079da56 100644
--- a/example/pages/search/index.wxml
+++ b/example/pages/search/index.wxml
@@ -1,56 +1 @@
-<demo-block title="基本用法">
-  <van-search
-    model:value="{{ value }}"
-    placeholder="请输入搜索关键词"
-    bind:search="onSearch"
-  />
-</demo-block>
-
-<demo-block title="事件监听">
-  <van-search
-    model:value="{{ value }}"
-    show-action
-    placeholder="请输入搜索关键词"
-    bind:search="onSearch"
-    bind:cancel="onCancel"
-    bind:clear="onClear"
-  />
-</demo-block>
-
-<demo-block title="搜索框内容对齐">
-  <van-search
-    model:value="{{ value }}"
-    input-align="center"
-    placeholder="请输入搜索关键词"
-  />
-</demo-block>
-
-<demo-block title="禁用搜索框">
-  <van-search
-    disabled
-    model:value="{{ value }}"
-    placeholder="请输入搜索关键词"
-  />
-</demo-block>
-
-<demo-block title="自定义背景色">
-  <van-search
-    model:value="{{ value }}"
-    shape="round"
-    background="#4fc08d"
-    placeholder="请输入搜索关键词"
-  />
-</demo-block>
-
-<demo-block title="自定义按钮">
-  <van-search
-    model:value="{{ value }}"
-    label="地址"
-    shape="round"
-    placeholder="请输入搜索关键词"
-    use-action-slot
-    bind:search="onSearch"
-  >
-    <view slot="action" bind:tap="onClick">搜索</view>
-  </van-search>
-</demo-block>
+<van-search-demo />
diff --git a/example/pages/search/index.wxss b/example/pages/search/index.wxss
deleted file mode 100644
index e69de29b..00000000
diff --git a/packages/search/demo/index.json b/packages/search/demo/index.json
new file mode 100644
index 00000000..d8396d84
--- /dev/null
+++ b/packages/search/demo/index.json
@@ -0,0 +1,7 @@
+{
+  "component": true,
+  "usingComponents": {
+    "van-search": "../../search/index",
+    "demo-block": "../../../example/components/demo-block/index"
+  }
+}
diff --git a/packages/search/demo/index.ts b/packages/search/demo/index.ts
new file mode 100644
index 00000000..372149ba
--- /dev/null
+++ b/packages/search/demo/index.ts
@@ -0,0 +1,47 @@
+import { VantComponent } from '../../common/component';
+
+VantComponent({
+  data: {
+    value: '',
+  },
+
+  methods: {
+    onChange(e) {
+      this.setData({
+        value: e.detail,
+      });
+    },
+
+    onSearch() {
+      if (this.data.value) {
+        wx.showToast({
+          title: '搜索:' + this.data.value,
+          icon: 'none',
+        });
+      }
+    },
+
+    onClick() {
+      if (this.data.value) {
+        wx.showToast({
+          title: '搜索:' + this.data.value,
+          icon: 'none',
+        });
+      }
+    },
+
+    onCancel() {
+      wx.showToast({
+        title: '取消',
+        icon: 'none',
+      });
+    },
+
+    onClear() {
+      wx.showToast({
+        title: '清空',
+        icon: 'none',
+      });
+    },
+  },
+});
diff --git a/packages/search/demo/index.wxml b/packages/search/demo/index.wxml
new file mode 100644
index 00000000..4c60d927
--- /dev/null
+++ b/packages/search/demo/index.wxml
@@ -0,0 +1,56 @@
+<demo-block title="基本用法">
+  <van-search
+    model:value="{{ value }}"
+    placeholder="请输入搜索关键词"
+    bind:search="onSearch"
+  />
+</demo-block>
+
+<demo-block title="事件监听">
+  <van-search
+    model:value="{{ value }}"
+    show-action
+    placeholder="请输入搜索关键词"
+    bind:search="onSearch"
+    bind:cancel="onCancel"
+    bind:clear="onClear"
+  />
+</demo-block>
+
+<demo-block title="搜索框内容对齐">
+  <van-search
+    model:value="{{ value }}"
+    input-align="center"
+    placeholder="请输入搜索关键词"
+  />
+</demo-block>
+
+<demo-block title="禁用搜索框">
+  <van-search
+    disabled
+    model:value="{{ value }}"
+    placeholder="请输入搜索关键词"
+  />
+</demo-block>
+
+<demo-block title="自定义背景色">
+  <van-search
+    model:value="{{ value }}"
+    shape="round"
+    background="#4fc08d"
+    placeholder="请输入搜索关键词"
+  />
+</demo-block>
+
+<demo-block title="自定义按钮">
+  <van-search
+    model:value="{{ value }}"
+    label="地址"
+    shape="round"
+    placeholder="请输入搜索关键词"
+    use-action-slot
+    bind:search="onSearch"
+  >
+    <view slot="action" bind:tap="onClick">搜索</view>
+  </van-search>
+</demo-block>
diff --git a/packages/search/test/__snapshots__/demo.spec.ts.snap b/packages/search/test/__snapshots__/demo.spec.ts.snap
new file mode 100644
index 00000000..cc72ecb9
--- /dev/null
+++ b/packages/search/test/__snapshots__/demo.spec.ts.snap
@@ -0,0 +1,679 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`should render demo and match snapshot 1`] = `
+<main>
+  <demo-block>
+    <wx-view
+      class="custom-class demo-block van-clearfix "
+    >
+      <wx-view
+        class="demo-block__title"
+      >
+        基本用法
+      </wx-view>
+      <van-search
+        bind:search="onSearch"
+      >
+        <wx-view
+          class="van-search custom-class"
+          style="background: #ffffff"
+        >
+          <wx-view
+            class="van-search__content van-search__content--square"
+          >
+            <van-field
+              class="van-search__field field-class"
+              inputClass="input-class"
+              bind:blur="onBlur"
+              bind:change="onChange"
+              bind:clear="onClear"
+              bind:click-input="onClickInput"
+              bind:confirm="onSearch"
+              bind:focus="onFocus"
+            >
+              <van-cell
+                customClass="van-field"
+              >
+                <wx-view
+                  class="custom-class van-cell van-cell--borderless"
+                  hoverClass="van-cell--hover hover-class"
+                  hoverStayTime="70"
+                  style="padding: 5px 10px 5px 0; background-color: transparent;"
+                  bind:tap="onClick"
+                >
+                  <van-icon
+                    class="van-cell__left-icon-wrap"
+                    customClass="van-cell__left-icon"
+                  >
+                    <wx-view
+                      class="custom-class van-icon van-icon-search"
+                      style=""
+                      bind:tap="onClick"
+                    />
+                  </van-icon>
+                  <wx-view
+                    class="van-cell__title title-class"
+                    style="max-width:6.2em;min-width:6.2em;margin-right: 12px;"
+                  />
+                  <wx-view
+                    class="van-cell__value value-class"
+                  >
+                    <wx-view
+                      class="van-field__body van-field__body--search"
+                    >
+                      <wx-view
+                        class="van-field__control van-field__control--custom"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-input
+                        adjustPosition="{{true}}"
+                        alwaysEmbed="{{false}}"
+                        autoFocus="{{false}}"
+                        class="van-field__control input-class"
+                        confirmHold="{{false}}"
+                        confirmType="search"
+                        cursor="{{-1}}"
+                        cursorSpacing="{{50}}"
+                        disabled="{{false}}"
+                        focus="{{false}}"
+                        holdKeyboard="{{false}}"
+                        maxlength="{{-1}}"
+                        password="{{false}}"
+                        placeholder="请输入搜索关键词"
+                        placeholderClass="van-field__placeholder"
+                        placeholderStyle=""
+                        selectionEnd="{{-1}}"
+                        selectionStart="{{-1}}"
+                        type="search"
+                        value=""
+                        bind:blur="onBlur"
+                        bind:confirm="onConfirm"
+                        bind:focus="onFocus"
+                        bind:input="onInput"
+                        bind:keyboardheightchange="onKeyboardHeightChange"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-view
+                        class="van-field__icon-container"
+                        bind:tap="onClickIcon"
+                      />
+                      <wx-view
+                        class="van-field__button"
+                      />
+                    </wx-view>
+                  </wx-view>
+                </wx-view>
+              </van-cell>
+            </van-field>
+          </wx-view>
+        </wx-view>
+      </van-search>
+    </wx-view>
+  </demo-block>
+  <demo-block>
+    <wx-view
+      class="custom-class demo-block van-clearfix "
+    >
+      <wx-view
+        class="demo-block__title"
+      >
+        事件监听
+      </wx-view>
+      <van-search
+        bind:cancel="onCancel"
+        bind:clear="onClear"
+        bind:search="onSearch"
+      >
+        <wx-view
+          class="van-search van-search--withaction custom-class"
+          style="background: #ffffff"
+        >
+          <wx-view
+            class="van-search__content van-search__content--square"
+          >
+            <van-field
+              class="van-search__field field-class"
+              inputClass="input-class"
+              bind:blur="onBlur"
+              bind:change="onChange"
+              bind:clear="onClear"
+              bind:click-input="onClickInput"
+              bind:confirm="onSearch"
+              bind:focus="onFocus"
+            >
+              <van-cell
+                customClass="van-field"
+              >
+                <wx-view
+                  class="custom-class van-cell van-cell--borderless"
+                  hoverClass="van-cell--hover hover-class"
+                  hoverStayTime="70"
+                  style="padding: 5px 10px 5px 0; background-color: transparent;"
+                  bind:tap="onClick"
+                >
+                  <van-icon
+                    class="van-cell__left-icon-wrap"
+                    customClass="van-cell__left-icon"
+                  >
+                    <wx-view
+                      class="custom-class van-icon van-icon-search"
+                      style=""
+                      bind:tap="onClick"
+                    />
+                  </van-icon>
+                  <wx-view
+                    class="van-cell__title title-class"
+                    style="max-width:6.2em;min-width:6.2em;margin-right: 12px;"
+                  />
+                  <wx-view
+                    class="van-cell__value value-class"
+                  >
+                    <wx-view
+                      class="van-field__body van-field__body--search"
+                    >
+                      <wx-view
+                        class="van-field__control van-field__control--custom"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-input
+                        adjustPosition="{{true}}"
+                        alwaysEmbed="{{false}}"
+                        autoFocus="{{false}}"
+                        class="van-field__control input-class"
+                        confirmHold="{{false}}"
+                        confirmType="search"
+                        cursor="{{-1}}"
+                        cursorSpacing="{{50}}"
+                        disabled="{{false}}"
+                        focus="{{false}}"
+                        holdKeyboard="{{false}}"
+                        maxlength="{{-1}}"
+                        password="{{false}}"
+                        placeholder="请输入搜索关键词"
+                        placeholderClass="van-field__placeholder"
+                        placeholderStyle=""
+                        selectionEnd="{{-1}}"
+                        selectionStart="{{-1}}"
+                        type="search"
+                        value=""
+                        bind:blur="onBlur"
+                        bind:confirm="onConfirm"
+                        bind:focus="onFocus"
+                        bind:input="onInput"
+                        bind:keyboardheightchange="onKeyboardHeightChange"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-view
+                        class="van-field__icon-container"
+                        bind:tap="onClickIcon"
+                      />
+                      <wx-view
+                        class="van-field__button"
+                      />
+                    </wx-view>
+                  </wx-view>
+                </wx-view>
+              </van-cell>
+            </van-field>
+          </wx-view>
+          <wx-view
+            class="van-search__action"
+            hoverClass="van-search__action--hover"
+            hoverStayTime="70"
+          >
+            <wx-view
+              class="cancel-class"
+              bind:tap="onCancel"
+            >
+              取消
+            </wx-view>
+          </wx-view>
+        </wx-view>
+      </van-search>
+    </wx-view>
+  </demo-block>
+  <demo-block>
+    <wx-view
+      class="custom-class demo-block van-clearfix "
+    >
+      <wx-view
+        class="demo-block__title"
+      >
+        搜索框内容对齐
+      </wx-view>
+      <van-search>
+        <wx-view
+          class="van-search custom-class"
+          style="background: #ffffff"
+        >
+          <wx-view
+            class="van-search__content van-search__content--square"
+          >
+            <van-field
+              class="van-search__field field-class"
+              inputClass="input-class"
+              bind:blur="onBlur"
+              bind:change="onChange"
+              bind:clear="onClear"
+              bind:click-input="onClickInput"
+              bind:confirm="onSearch"
+              bind:focus="onFocus"
+            >
+              <van-cell
+                customClass="van-field"
+              >
+                <wx-view
+                  class="custom-class van-cell van-cell--borderless"
+                  hoverClass="van-cell--hover hover-class"
+                  hoverStayTime="70"
+                  style="padding: 5px 10px 5px 0; background-color: transparent;"
+                  bind:tap="onClick"
+                >
+                  <van-icon
+                    class="van-cell__left-icon-wrap"
+                    customClass="van-cell__left-icon"
+                  >
+                    <wx-view
+                      class="custom-class van-icon van-icon-search"
+                      style=""
+                      bind:tap="onClick"
+                    />
+                  </van-icon>
+                  <wx-view
+                    class="van-cell__title title-class"
+                    style="max-width:6.2em;min-width:6.2em;margin-right: 12px;"
+                  />
+                  <wx-view
+                    class="van-cell__value value-class"
+                  >
+                    <wx-view
+                      class="van-field__body van-field__body--search"
+                    >
+                      <wx-view
+                        class="van-field__control van-field__control--center van-field__control--custom"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-input
+                        adjustPosition="{{true}}"
+                        alwaysEmbed="{{false}}"
+                        autoFocus="{{false}}"
+                        class="van-field__control van-field__control--center input-class"
+                        confirmHold="{{false}}"
+                        confirmType="search"
+                        cursor="{{-1}}"
+                        cursorSpacing="{{50}}"
+                        disabled="{{false}}"
+                        focus="{{false}}"
+                        holdKeyboard="{{false}}"
+                        maxlength="{{-1}}"
+                        password="{{false}}"
+                        placeholder="请输入搜索关键词"
+                        placeholderClass="van-field__placeholder"
+                        placeholderStyle=""
+                        selectionEnd="{{-1}}"
+                        selectionStart="{{-1}}"
+                        type="search"
+                        value=""
+                        bind:blur="onBlur"
+                        bind:confirm="onConfirm"
+                        bind:focus="onFocus"
+                        bind:input="onInput"
+                        bind:keyboardheightchange="onKeyboardHeightChange"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-view
+                        class="van-field__icon-container"
+                        bind:tap="onClickIcon"
+                      />
+                      <wx-view
+                        class="van-field__button"
+                      />
+                    </wx-view>
+                  </wx-view>
+                </wx-view>
+              </van-cell>
+            </van-field>
+          </wx-view>
+        </wx-view>
+      </van-search>
+    </wx-view>
+  </demo-block>
+  <demo-block>
+    <wx-view
+      class="custom-class demo-block van-clearfix "
+    >
+      <wx-view
+        class="demo-block__title"
+      >
+        禁用搜索框
+      </wx-view>
+      <van-search>
+        <wx-view
+          class="van-search custom-class"
+          style="background: #ffffff"
+        >
+          <wx-view
+            class="van-search__content van-search__content--square"
+          >
+            <van-field
+              class="van-search__field field-class"
+              inputClass="input-class"
+              bind:blur="onBlur"
+              bind:change="onChange"
+              bind:clear="onClear"
+              bind:click-input="onClickInput"
+              bind:confirm="onSearch"
+              bind:focus="onFocus"
+            >
+              <van-cell
+                customClass="van-field"
+              >
+                <wx-view
+                  class="custom-class van-cell van-cell--borderless"
+                  hoverClass="van-cell--hover hover-class"
+                  hoverStayTime="70"
+                  style="padding: 5px 10px 5px 0; background-color: transparent;"
+                  bind:tap="onClick"
+                >
+                  <van-icon
+                    class="van-cell__left-icon-wrap"
+                    customClass="van-cell__left-icon"
+                  >
+                    <wx-view
+                      class="custom-class van-icon van-icon-search"
+                      style=""
+                      bind:tap="onClick"
+                    />
+                  </van-icon>
+                  <wx-view
+                    class="van-cell__title title-class"
+                    style="max-width:6.2em;min-width:6.2em;margin-right: 12px;"
+                  />
+                  <wx-view
+                    class="van-cell__value value-class"
+                  >
+                    <wx-view
+                      class="van-field__body van-field__body--search"
+                    >
+                      <wx-view
+                        class="van-field__control van-field__control--custom"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-input
+                        adjustPosition="{{true}}"
+                        alwaysEmbed="{{false}}"
+                        autoFocus="{{false}}"
+                        class="van-field__control van-field__control--disabled input-class"
+                        confirmHold="{{false}}"
+                        confirmType="search"
+                        cursor="{{-1}}"
+                        cursorSpacing="{{50}}"
+                        disabled="{{true}}"
+                        focus="{{false}}"
+                        holdKeyboard="{{false}}"
+                        maxlength="{{-1}}"
+                        password="{{false}}"
+                        placeholder="请输入搜索关键词"
+                        placeholderClass="van-field__placeholder"
+                        placeholderStyle=""
+                        selectionEnd="{{-1}}"
+                        selectionStart="{{-1}}"
+                        type="search"
+                        value=""
+                        bind:blur="onBlur"
+                        bind:confirm="onConfirm"
+                        bind:focus="onFocus"
+                        bind:input="onInput"
+                        bind:keyboardheightchange="onKeyboardHeightChange"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-view
+                        class="van-field__icon-container"
+                        bind:tap="onClickIcon"
+                      />
+                      <wx-view
+                        class="van-field__button"
+                      />
+                    </wx-view>
+                  </wx-view>
+                </wx-view>
+              </van-cell>
+            </van-field>
+          </wx-view>
+        </wx-view>
+      </van-search>
+    </wx-view>
+  </demo-block>
+  <demo-block>
+    <wx-view
+      class="custom-class demo-block van-clearfix "
+    >
+      <wx-view
+        class="demo-block__title"
+      >
+        自定义背景色
+      </wx-view>
+      <van-search>
+        <wx-view
+          class="van-search custom-class"
+          style="background: #4fc08d"
+        >
+          <wx-view
+            class="van-search__content van-search__content--round"
+          >
+            <van-field
+              class="van-search__field field-class"
+              inputClass="input-class"
+              bind:blur="onBlur"
+              bind:change="onChange"
+              bind:clear="onClear"
+              bind:click-input="onClickInput"
+              bind:confirm="onSearch"
+              bind:focus="onFocus"
+            >
+              <van-cell
+                customClass="van-field"
+              >
+                <wx-view
+                  class="custom-class van-cell van-cell--borderless"
+                  hoverClass="van-cell--hover hover-class"
+                  hoverStayTime="70"
+                  style="padding: 5px 10px 5px 0; background-color: transparent;"
+                  bind:tap="onClick"
+                >
+                  <van-icon
+                    class="van-cell__left-icon-wrap"
+                    customClass="van-cell__left-icon"
+                  >
+                    <wx-view
+                      class="custom-class van-icon van-icon-search"
+                      style=""
+                      bind:tap="onClick"
+                    />
+                  </van-icon>
+                  <wx-view
+                    class="van-cell__title title-class"
+                    style="max-width:6.2em;min-width:6.2em;margin-right: 12px;"
+                  />
+                  <wx-view
+                    class="van-cell__value value-class"
+                  >
+                    <wx-view
+                      class="van-field__body van-field__body--search"
+                    >
+                      <wx-view
+                        class="van-field__control van-field__control--custom"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-input
+                        adjustPosition="{{true}}"
+                        alwaysEmbed="{{false}}"
+                        autoFocus="{{false}}"
+                        class="van-field__control input-class"
+                        confirmHold="{{false}}"
+                        confirmType="search"
+                        cursor="{{-1}}"
+                        cursorSpacing="{{50}}"
+                        disabled="{{false}}"
+                        focus="{{false}}"
+                        holdKeyboard="{{false}}"
+                        maxlength="{{-1}}"
+                        password="{{false}}"
+                        placeholder="请输入搜索关键词"
+                        placeholderClass="van-field__placeholder"
+                        placeholderStyle=""
+                        selectionEnd="{{-1}}"
+                        selectionStart="{{-1}}"
+                        type="search"
+                        value=""
+                        bind:blur="onBlur"
+                        bind:confirm="onConfirm"
+                        bind:focus="onFocus"
+                        bind:input="onInput"
+                        bind:keyboardheightchange="onKeyboardHeightChange"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-view
+                        class="van-field__icon-container"
+                        bind:tap="onClickIcon"
+                      />
+                      <wx-view
+                        class="van-field__button"
+                      />
+                    </wx-view>
+                  </wx-view>
+                </wx-view>
+              </van-cell>
+            </van-field>
+          </wx-view>
+        </wx-view>
+      </van-search>
+    </wx-view>
+  </demo-block>
+  <demo-block>
+    <wx-view
+      class="custom-class demo-block van-clearfix "
+    >
+      <wx-view
+        class="demo-block__title"
+      >
+        自定义按钮
+      </wx-view>
+      <van-search
+        bind:search="onSearch"
+      >
+        <wx-view
+          class="van-search van-search--withaction custom-class"
+          style="background: #ffffff"
+        >
+          <wx-view
+            class="van-search__content van-search__content--round"
+          >
+            <wx-view
+              class="van-search__label"
+            >
+              地址
+            </wx-view>
+            <van-field
+              class="van-search__field field-class"
+              inputClass="input-class"
+              bind:blur="onBlur"
+              bind:change="onChange"
+              bind:clear="onClear"
+              bind:click-input="onClickInput"
+              bind:confirm="onSearch"
+              bind:focus="onFocus"
+            >
+              <van-cell
+                customClass="van-field"
+              >
+                <wx-view
+                  class="custom-class van-cell van-cell--borderless"
+                  hoverClass="van-cell--hover hover-class"
+                  hoverStayTime="70"
+                  style="padding: 5px 10px 5px 0; background-color: transparent;"
+                  bind:tap="onClick"
+                >
+                  <van-icon
+                    class="van-cell__left-icon-wrap"
+                    customClass="van-cell__left-icon"
+                  >
+                    <wx-view
+                      class="custom-class van-icon van-icon-search"
+                      style=""
+                      bind:tap="onClick"
+                    />
+                  </van-icon>
+                  <wx-view
+                    class="van-cell__title title-class"
+                    style="max-width:6.2em;min-width:6.2em;margin-right: 12px;"
+                  />
+                  <wx-view
+                    class="van-cell__value value-class"
+                  >
+                    <wx-view
+                      class="van-field__body van-field__body--search"
+                    >
+                      <wx-view
+                        class="van-field__control van-field__control--custom"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-input
+                        adjustPosition="{{true}}"
+                        alwaysEmbed="{{false}}"
+                        autoFocus="{{false}}"
+                        class="van-field__control input-class"
+                        confirmHold="{{false}}"
+                        confirmType="search"
+                        cursor="{{-1}}"
+                        cursorSpacing="{{50}}"
+                        disabled="{{false}}"
+                        focus="{{false}}"
+                        holdKeyboard="{{false}}"
+                        maxlength="{{-1}}"
+                        password="{{false}}"
+                        placeholder="请输入搜索关键词"
+                        placeholderClass="van-field__placeholder"
+                        placeholderStyle=""
+                        selectionEnd="{{-1}}"
+                        selectionStart="{{-1}}"
+                        type="search"
+                        value=""
+                        bind:blur="onBlur"
+                        bind:confirm="onConfirm"
+                        bind:focus="onFocus"
+                        bind:input="onInput"
+                        bind:keyboardheightchange="onKeyboardHeightChange"
+                        bind:tap="onClickInput"
+                      />
+                      <wx-view
+                        class="van-field__icon-container"
+                        bind:tap="onClickIcon"
+                      />
+                      <wx-view
+                        class="van-field__button"
+                      />
+                    </wx-view>
+                  </wx-view>
+                </wx-view>
+              </van-cell>
+            </van-field>
+          </wx-view>
+          <wx-view
+            class="van-search__action"
+            hoverClass="van-search__action--hover"
+            hoverStayTime="70"
+          >
+            <wx-view
+              slot="action"
+              bind:tap="onClick"
+            >
+              搜索
+            </wx-view>
+          </wx-view>
+        </wx-view>
+      </van-search>
+    </wx-view>
+  </demo-block>
+</main>
+`;
diff --git a/packages/search/test/demo.spec.ts b/packages/search/test/demo.spec.ts
new file mode 100644
index 00000000..4c3798cb
--- /dev/null
+++ b/packages/search/test/demo.spec.ts
@@ -0,0 +1,11 @@
+import path from 'path';
+import simulate from 'miniprogram-simulate';
+
+test('should render demo and match snapshot', () => {
+  const id = simulate.load(path.resolve(__dirname, '../demo/index'), {
+    rootPath: path.resolve(__dirname, '../../'),
+  });
+  const comp = simulate.render(id);
+  comp.attach(document.createElement('parent-wrapper'));
+  expect(comp.toJSON()).toMatchSnapshot();
+});