From 2cca63080868beb1b64bedddd004d8f13bc64d4a Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Wed, 24 Aug 2022 22:40:20 +0800 Subject: [PATCH 1/9] release: 3.6.1 --- packages/vant/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vant/package.json b/packages/vant/package.json index 4468b5e06..2b79c62b1 100644 --- a/packages/vant/package.json +++ b/packages/vant/package.json @@ -1,6 +1,6 @@ { "name": "vant", - "version": "3.6.0", + "version": "3.6.1", "description": "Lightweight Mobile UI Components built on Vue", "main": "lib/vant.cjs.js", "module": "es/index.mjs", From 6a7376d15d20bdd1641422ff2cb1c317fc987e89 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Wed, 24 Aug 2022 22:43:13 +0800 Subject: [PATCH 2/9] docs(changelog): 3.6.1 --- packages/vant/docs/markdown/changelog.en-US.md | 14 ++++++++++++++ packages/vant/docs/markdown/changelog.zh-CN.md | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/packages/vant/docs/markdown/changelog.en-US.md b/packages/vant/docs/markdown/changelog.en-US.md index 78d8f11cf..549de1429 100644 --- a/packages/vant/docs/markdown/changelog.en-US.md +++ b/packages/vant/docs/markdown/changelog.en-US.md @@ -19,6 +19,20 @@ Vant follows [Semantic Versioning 2.0.0](https://semver.org/lang/zh-CN/). ## Details +### [v3.6.1](https://github.com/vant-ui/vant/compare/v3.6.0...v3.6.1) + +`2022-08-24` + +**Feature** + +- add correct passive flag to improve scroll performance [#10951](https://github.com/vant-ui/vant/issues/10951) +- @vant/use: improve useEventListener typing [#10952](https://github.com/vant-ui/vant/issues/10952) + +**Bug Fixes** + +- reduce passive event warning of touchstart event [#10954](https://github.com/vant-ui/vant/issues/10954) +- Tabs: resize not work for swipeable tabs [#10964](https://github.com/vant-ui/vant/issues/10964) + ### [v3.6.0](https://github.com/vant-ui/vant/compare/v3.5.3...v3.6.0) `2022-08-21` diff --git a/packages/vant/docs/markdown/changelog.zh-CN.md b/packages/vant/docs/markdown/changelog.zh-CN.md index af38bd810..082637b81 100644 --- a/packages/vant/docs/markdown/changelog.zh-CN.md +++ b/packages/vant/docs/markdown/changelog.zh-CN.md @@ -19,6 +19,20 @@ Vant 遵循 [Semver](https://semver.org/lang/zh-CN/) 语义化版本规范。 ## 更新内容 +### [v3.6.1](https://github.com/vant-ui/vant/compare/v3.6.0...v3.6.1) + +`2022-08-24` + +**Feature** + +- 为 scroll 事件添加了正确的 passive 标记来提升滚动性能 [#10951](https://github.com/vant-ui/vant/issues/10951) +- @vant/use: 优化 useEventListener 类型定义 [#10952](https://github.com/vant-ui/vant/issues/10952) + +**Bug Fixes** + +- 修复 touchstart 导致控制台出现 passive event warning 的问题 [#10954](https://github.com/vant-ui/vant/issues/10954) +- Tabs: 修复开启 swipeable 时,resize 方法无法正确生效的问题 [#10964](https://github.com/vant-ui/vant/issues/10964) + ### [v3.6.0](https://github.com/vant-ui/vant/compare/v3.5.3...v3.6.0) `2022-08-21` From da3400435ff403373d9e45cdc2a44b87a0cb5a15 Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 27 Aug 2022 11:12:36 +0800 Subject: [PATCH 3/9] fix: reduce passive event warning of touchmove event (#10975) --- packages/vant/src/field/Field.tsx | 17 +- packages/vant/src/field/demo/CustomType.vue | 63 ++++--- .../test/__snapshots__/demo.spec.ts.snap | 168 +++++++++--------- .../src/image-preview/ImagePreviewItem.tsx | 11 +- packages/vant/src/index-bar/IndexBar.tsx | 8 +- packages/vant/src/overlay/Overlay.tsx | 21 ++- packages/vant/src/picker/Picker.tsx | 14 +- packages/vant/src/picker/PickerColumn.tsx | 10 +- packages/vant/src/rate/Rate.tsx | 8 +- packages/vant/src/slider/Slider.tsx | 10 +- packages/vant/src/swipe-cell/SwipeCell.tsx | 8 +- packages/vant/src/swipe/Swipe.tsx | 15 +- 12 files changed, 217 insertions(+), 136 deletions(-) diff --git a/packages/vant/src/field/Field.tsx b/packages/vant/src/field/Field.tsx index 3d1511638..10aca6c6b 100644 --- a/packages/vant/src/field/Field.tsx +++ b/packages/vant/src/field/Field.tsx @@ -26,6 +26,7 @@ import { makeStringProp, makeNumericProp, createNamespace, + type ComponentInstance, } from '../utils'; import { cutString, @@ -42,7 +43,11 @@ import { import { cellSharedProps } from '../cell/Cell'; // Composables -import { CUSTOM_FIELD_INJECTION_KEY, useParent } from '@vant/use'; +import { + useParent, + useEventListener, + CUSTOM_FIELD_INJECTION_KEY, +} from '@vant/use'; import { useId } from '../composables/use-id'; import { useExpose } from '../composables/use-expose'; @@ -145,6 +150,7 @@ export default defineComponent({ }); const inputRef = ref(); + const clearIconRef = ref(); const customValue = ref<() => unknown>(); const { parent: form } = useParent(FORM_KEY); @@ -354,7 +360,7 @@ export default defineComponent({ const onClickRightIcon = (event: MouseEvent) => emit('click-right-icon', event); - const onClear = (event: MouseEvent) => { + const onClear = (event: TouchEvent) => { preventDefault(event); emit('update:modelValue', ''); emit('clear', event); @@ -527,9 +533,9 @@ export default defineComponent({ {renderInput()} {showClear.value && ( )} {renderRightIcon()} @@ -569,6 +575,11 @@ export default defineComponent({ nextTick(adjustTextareaSize); }); + // useEventListener will set passive to `false` to eliminate the warning of Chrome + useEventListener('touchstart', onClear, { + target: computed(() => clearIconRef.value?.$el), + }); + return () => { const disabled = getProp('disabled'); const labelAlign = getProp('labelAlign'); diff --git a/packages/vant/src/field/demo/CustomType.vue b/packages/vant/src/field/demo/CustomType.vue index 9728ca462..24d30352e 100644 --- a/packages/vant/src/field/demo/CustomType.vue +++ b/packages/vant/src/field/demo/CustomType.vue @@ -1,5 +1,6 @@ <% } %> - +
diff --git a/packages/vant-cli/site/mobile.html b/packages/vant-cli/site/mobile.html index 4d26f4752..e5ff77b7d 100644 --- a/packages/vant-cli/site/mobile.html +++ b/packages/vant-cli/site/mobile.html @@ -39,7 +39,7 @@ <% } %> - +
diff --git a/packages/vant-cli/site/mobile/main.js b/packages/vant-cli/site/mobile/main.js index adb8a450d..3d85b1e2b 100644 --- a/packages/vant-cli/site/mobile/main.js +++ b/packages/vant-cli/site/mobile/main.js @@ -13,3 +13,8 @@ window.app = createApp(App) setTimeout(() => { window.app.mount('#app'); }, 0); + +// https://stackoverflow.com/questions/3885018/active-pseudo-class-doesnt-work-in-mobile-safari/33681490#33681490 +document.addEventListener('touchstart', () => {}, { + passive: true, +}); From a02cfe960404a68d75430c76a4308d4a790946cc Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 27 Aug 2022 15:44:06 +0800 Subject: [PATCH 9/9] fix(Swipe): should not prevent touch move when reach edge (#10980) --- packages/vant/src/swipe/Swipe.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/vant/src/swipe/Swipe.tsx b/packages/vant/src/swipe/Swipe.tsx index 93d9183c9..f2e181759 100644 --- a/packages/vant/src/swipe/Swipe.tsx +++ b/packages/vant/src/swipe/Swipe.tsx @@ -307,8 +307,15 @@ export default defineComponent({ touch.move(event); if (isCorrectDirection.value) { - preventDefault(event, props.stopPropagation); - move({ offset: delta.value }); + const isEdgeTouch = + !props.loop && + ((state.active === 0 && delta.value > 0) || + (state.active === count.value - 1 && delta.value < 0)); + + if (!isEdgeTouch) { + preventDefault(event, props.stopPropagation); + move({ offset: delta.value }); + } } } };