v-if 用在 slot 上在 uni-app 小程序下会触发 onMounted 和 H5 上不触发的表现不一致
v-if 用在 slot 上在 uni-app 小程序下会触发 onMounted 和 H5 上不触发的表现不一致
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
PC | Mac 15.1 | CLI |
手机 | 全部 | |
手机厂商 | 华为 |
产品分类:uniapp/App
页面类型:vue
vue版本:vue3
打包方式:离线
CLI版本号:3.0.0-4040520250104002
测试过的手机:x6 iphone 12 pro max
示例代码:
console-mounted.vue
<template>
<view>console mounted</view>
</template>
<script lang="ts" setup>
import {
onMounted
} from 'vue';
onMounted(() => {
console.info('onMounted');
});
</script>
with-slots.vue
<template>
<slot v-if="value === 0" />
<slot v-if="value === 1" name="s1">111</slot>
<slot v-if="value === 2" name="s2">222</slot>
<slot v-if="value === 3" name="s3">333</slot>
</template>
<script lang="ts" setup>
interface IProps {
value?: 0 | 1 | 2 | 3;
}
defineProps<IProps>();
</script>
if-demo.vue
<template>
<ConsoleMounted v-if="false" />
<WithSlots :value="1">
<ConsoleMounted />
</WithSlots>
<WithSlots :value="2">
<ConsoleMounted />
</WithSlots>
<WithSlots :value="3">
<ConsoleMounted />
</WithSlots>
</template>
<script lang="ts" setup>
import WithSlots from './with-slots.vue';
import ConsoleMounted from './console-mounted.vue';
</script>
更多关于v-if 用在 slot 上在 uni-app 小程序下会触发 onMounted 和 H5 上不触发的表现不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于v-if 用在 slot 上在 uni-app 小程序下会触发 onMounted 和 H5 上不触发的表现不一致的实战教程也可以访问 https://www.itying.com/category-93-b0.html
有没有临时修改 node_modules 的解决方案,这个影响代码程度挺大的。