Skip to content

Commit 43c4c43

Browse files
author
Tenny
committed
fix(Popover): 使用 v-show 而不是 v-if
Signed-off-by: Tenny <joel.shu@qq.com>
1 parent 6004a98 commit 43c4c43

File tree

5 files changed

+46
-29
lines changed

5 files changed

+46
-29
lines changed

docs/components/dialog.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66

77
<script setup>
88
import { ref } from 'vue'
9-
import { Dialog } from "../../src"
9+
import { Dialog, AlertDialog } from "../../src"
1010

11-
const show = ref(true)
11+
const show = ref(false)
1212
</script>
1313

14+
<AlertDialog></AlertDialog>
15+
1416
### 基础用法
1517

1618
基础用法
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<template>
2+
<div>Vue3 Composition Component <CloseIcon></CloseIcon></div>
3+
</template>
4+
5+
<script setup lang="ts">
6+
import { defineAsyncComponent } from 'vue';
7+
8+
const CloseIcon = defineAsyncComponent(() => import('../icon/Close.vue'));
9+
const ErrorIcon = defineAsyncComponent(() => import('../icon/Success.vue'));
10+
</script>
11+
12+
<style></style>

src/components/Dialog.vue renamed to src/components/dialog/Dialog.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<script lang="ts">
22
import { defineComponent, watch, h, Teleport, Transition } from 'vue';
33
import type { PropType } from 'vue';
4-
import Shadow from './Shadow.vue';
5-
import Button from './Button.vue';
6-
import CloseIcon from './icon/Close.vue';
4+
import Shadow from '../Shadow.vue';
5+
import Button from '../Button.vue';
6+
import CloseIcon from '../icon/Close.vue';
77
88
export default defineComponent({
99
props: {

src/components/popover/Popover.vue

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
withDirectives,
1111
onMounted,
1212
watch,
13+
vShow,
1314
} from 'vue';
1415
import { popoverProps } from './constant';
1516
import Clickoutside from '../../directives/clickoutside';
@@ -285,30 +286,31 @@ export default defineComponent({
285286
{ name: 'nt-opacity' },
286287
{
287288
default: () =>
288-
show.value
289-
? h(
290-
'div',
291-
{
292-
...attrs,
293-
class: [
294-
'nt-popover',
295-
`nt-popover-${place.value}`,
296-
attrs.class,
297-
],
298-
style: [attrs.style, posStyle.value],
299-
ref: $popover,
300-
...prop,
301-
},
302-
[
303-
slots.default != null
304-
? slots.default()
305-
: props.content != null
306-
? h('span', props.content)
307-
: null,
308-
h('span', { class: 'nt-popover-arrow' }),
289+
withDirectives(
290+
h(
291+
'div',
292+
{
293+
...attrs,
294+
class: [
295+
'nt-popover',
296+
`nt-popover-${place.value}`,
297+
attrs.class,
309298
],
310-
)
311-
: null,
299+
style: [attrs.style, posStyle.value],
300+
ref: $popover,
301+
...prop,
302+
},
303+
[
304+
slots.default != null
305+
? slots.default()
306+
: props.content != null
307+
? h('span', props.content)
308+
: null,
309+
h('span', { class: 'nt-popover-arrow' }),
310+
],
311+
),
312+
[[vShow, show.value]],
313+
),
312314
},
313315
),
314316
),

src/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ export { default as Card } from './components/Card.vue';
3939

4040
export { default as Popover } from './components/popover/Popover.vue';
4141
export { default as Tooltip } from './components/popover/Tooltip.vue';
42+
export { default as Dialog } from './components/dialog/Dialog.vue';
43+
export { default as AlertDialog } from './components/dialog/AlertDialog.vue';
4244

4345
export { default as Qrcode } from './components/Qrcode.vue';
4446

@@ -53,7 +55,6 @@ export { default as DescriptionPanel } from './components/DescriptionPanel.vue';
5355
export { default as Tabbar } from './components/tabbar/Tabbar.vue';
5456
export { default as TabbarItem } from './components/tabbar/TabbarItem.vue';
5557
export { default as List } from './components/List.vue';
56-
export { default as Dialog } from './components/Dialog.vue';
5758

5859
export { default as Clickoutside } from './directives/clickoutside';
5960
export { default as Loading } from './directives/loading';

0 commit comments

Comments
 (0)