账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue.extend无法显示template内容
    31
    0

    使用Vue.extend(require('./message.vue'));导入一个消息组件放到body里面,不知道什么原因,一直导入的只有el的空div,message.vue里面的template没有导入进来,求教是什么问题?

    src/components/toast/index.js

    import Vue from 'vue';
    
    let MyMsgConstructor = Vue.extend(require('./message.vue'));
    
    let instance;
    
    let message = function (msg) {
        instance = new MyMsgConstructor({
            el: document.createElement("div"),
            data: {
                message: msg,
                visible: true
            }
        });
        
        document.body.appendChild(instance.$el);
        return instance;
    };
    
    
    export default message;
    

    src/components/toast/message.vue

     <template>
        <transition name="el-message-fade">
            <div v-show="visible" class="my-msg">{{message}}</div>
        </transition>
    </template>
    
    <script>
        export default {
            data() {
                return {
                    message: '',
                    visible: true
                }
            },
            methods: {
                close() {
                    setTimeout(() => {
                        this.visible = false;
                    }, 2000)
                },
            },
            mounted() {
                this.close();
            }
        }
    </script>
    
    

    main.js

    import message from './components/toast/index.js'
    Vue.$message = Vue.prototype.$message = message;
    

    使用

    openToast() {
        this.$message("test");
    }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部