s***@163.com
s***@163.com
  • 发布:2023-03-27 09:43
  • 更新:2023-03-27 09:44
  • 阅读:177

【报Bug严重】slot的if=“false"不会注销组件,只是隐藏起来(所有CLI版本都是这样)

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX版本号: 3.7.9

第三方开发者工具版本号: 1.06.2301040

基础库版本号: 2.30.2

项目创建方式: CLI

CLI版本号: 3.7.8.20230323

示例代码:

项目创建方式:npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project

// index.vue

<template>  
    <view>  
        <Demo>  
            <DemoContent></DemoContent>  
        </Demo>  
    </view>  
</template>  

<script lang="ts">  
import Demo from './Demo.vue';  
import DemoContent from './DemoContent.vue';  

export default {  
    components: {  
        Demo,  
        DemoContent  
    }  
};  
</script>

// DemoContent.vue

<template>  
    <view>  
        this is a demo.  
        Time is {{ new Date().getTime() }}  
    </view>  
</template>  

<script lang="ts">  
import { onBeforeMount, onBeforeUnmount } from 'vue';  

export default {  
    setup() {  
        onBeforeMount(() => {  
            console.log("onBeforeMount");  
        });  

        onBeforeUnmount(() => {  
            console.log("onBeforeUnmount");  
        });  
    }  
};  
</script>

// Demo.vue

<template>  
    <view>  
        <view style="background: #ff0;width:50vw;" @click="show = !show">测试</view>  
        <view>{{ show }}</view>  
        <view v-if="show">  
            <slot></slot>  
        </view>  
    </view>  
</template>  

<script lang="ts">  
import { ref } from 'vue';  

export default {  
    setup() {  
        const show = ref(false);  

        return {  
            show  
        }  
    }  
};  
</script>

操作步骤:

点击测试

预期结果:

注销组件、创建组件 ....

实际结果:

只是隐藏组件

bug描述:

BUG: 你可以从DemoContent看出slot的if=“false"不会注销组件,组件一直是alive状态

2023-03-27 09:43 负责人:无 分享
已邀请:
s***@163.com

s***@163.com (作者)

{  
  "name": "uni-preset-vue",  
  "version": "0.0.0",  
  "scripts": {  
    "dev:app": "uni -p app",  
    "dev:app-android": "uni -p app-android",  
    "dev:app-ios": "uni -p app-ios",  
    "dev:custom": "uni -p",  
    "dev:h5": "uni",  
    "dev:h5:ssr": "uni --ssr",  
    "dev:mp-alipay": "uni -p mp-alipay",  
    "dev:mp-baidu": "uni -p mp-baidu",  
    "dev:mp-jd": "uni -p mp-jd",  
    "dev:mp-kuaishou": "uni -p mp-kuaishou",  
    "dev:mp-lark": "uni -p mp-lark",  
    "dev:mp-qq": "uni -p mp-qq",  
    "dev:mp-toutiao": "uni -p mp-toutiao",  
    "dev:mp-weixin": "uni -p mp-weixin",  
    "dev:quickapp-webview": "uni -p quickapp-webview",  
    "dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei",  
    "dev:quickapp-webview-union": "uni -p quickapp-webview-union",  
    "build:app": "uni build -p app",  
    "build:app-android": "uni build -p app-android",  
    "build:app-ios": "uni build -p app-ios",  
    "build:custom": "uni build -p",  
    "build:h5": "uni build",  
    "build:h5:ssr": "uni build --ssr",  
    "build:mp-alipay": "uni build -p mp-alipay",  
    "build:mp-baidu": "uni build -p mp-baidu",  
    "build:mp-jd": "uni build -p mp-jd",  
    "build:mp-kuaishou": "uni build -p mp-kuaishou",  
    "build:mp-lark": "uni build -p mp-lark",  
    "build:mp-qq": "uni build -p mp-qq",  
    "build:mp-toutiao": "uni build -p mp-toutiao",  
    "build:mp-weixin": "uni build -p mp-weixin",  
    "build:quickapp-webview": "uni build -p quickapp-webview",  
    "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei",  
    "build:quickapp-webview-union": "uni build -p quickapp-webview-union",  
    "type-check": "vue-tsc --noEmit"  
  },  
  "dependencies": {  
    "@dcloudio/uni-app": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-app-plus": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-components": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-h5": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-mp-alipay": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-mp-baidu": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-mp-jd": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-mp-kuaishou": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-mp-lark": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-mp-qq": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-mp-toutiao": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-mp-weixin": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-quickapp-webview": "3.0.0-alpha-3070720230316001",  
    "cl-uni": "^1.8.20",  
    "sass": "^1.60.0",  
    "vue": "^3.2.45",  
    "vue-i18n": "^9.1.9"  
  },  
  "devDependencies": {  
    "@dcloudio/types": "^3.3.2",  
    "@dcloudio/uni-automator": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-cli-shared": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/uni-stacktracey": "3.0.0-alpha-3070720230316001",  
    "@dcloudio/vite-plugin-uni": "3.0.0-alpha-3070720230316001",  
    "@types/wechat-miniprogram": "^3.4.1",  
    "@vue/tsconfig": "^0.1.3",  
    "typescript": "^4.9.4",  
    "vite": "4.0.4",  
    "vue-tsc": "^1.0.24"  
  }  
}

要回复问题请先登录注册