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 的解决方案,这个影响代码程度挺大的。

回到顶部