Почему динамический c компонент не работает в vue3? - PullRequest
0 голосов
/ 29 апреля 2020

Вот рабочий пример Vue2:

<template>
    <div>
        <h1>O_o</h1>
        <component :is="name"/>
        <button @click="onClick">Click me !</button>
    </div>
</template>

<script>
    export default {
        data: () => ({
            isShow: false
        }),
        computed: {
            name() {
                return this.isShow ? () => import('./DynamicComponent') : '';
            }
        },
        methods: {
            onClick() {
                this.isShow = true;
            }
        },
    }
</script>

Функция Redone под Vue3 не работает. Никаких ошибок не возникает, но компонент не появляется.

<template>
    <div>
        <h1>O_o</h1>
        <component :is="state.name"/>
        <button @click="onClick">Click me !</button>
    </div>
</template>

<script>
    import {ref, reactive, computed} from 'vue'

    export default {
        setup() {
            const state = reactive({
                name: computed(() => isShow ? import('./DynamicComponent.vue') : '')
            });

            const isShow = ref(false);

            const onClick = () => {
                isShow.value = true;
            }

            return {
                state,
                onClick
            }
        }
    }
</script>

Кто-нибудь изучал бета-версию vue2? Помоги мне, пожалуйста. Извините за неуклюжий язык, я использую переводчик Google.

1 Ответ

0 голосов
/ 29 апреля 2020

попробуй вот так.

export default{
 components:{
   component : () => import('path to component')
 }
}

...