Vue 將某個元素或組件掛載到指定節(jié)點

我們以vant 日歷組件為例, 向彈窗底部添加一個重置按鈕

方法1: 元素添加

創(chuàng)建按鈕元素, 將其添加至目標節(jié)點

this.$nextTick(() => {
    const resetEl = document.getElementById(
        'calendarResetButton',
    )

    if (!resetEl) {
        const footerEl = document.getElementsByClassName(
            'van-calendar__footer',
        )[0]
        const button = document.createElement('button')

        button.setAttribute('type', 'button')
        button.setAttribute('id', 'calendarResetButton')
        button.setAttribute(
            'class',
            'rest-button van-button van-button--info van-button--normal van-button--block van-button--round van-calendar__confirm',
        )
        button.innerHTML = '重置'
        button.addEventListener('click', this.resetDate)

        footerEl.insertAdjacentElement('afterbegin', button)
    }
})

方法2: 組件添加

將按鈕組件添加至目標節(jié)點

this.$nextTick(() => {
    const resetEl = document.getElementById(
        'calendarResetButton',
    )

    if (!resetEl) {
        const footerEl = document.getElementsByClassName(
            'van-calendar__footer',
        )[0]
        const resetBtn = new Vue({
            el: document.createElement('div'),
            render: h => {
                return h('van-button', {
                    props: {
                        text: '重置',
                        type: 'info',
                        round: true,
                    },
                    attrs: {
                        id: 'calendarResetButton',
                    },
                    style: {
                        color: '#fff',
                    },
                    on: {
                        click: this.resetDate,
                    },
                })
            },
        })

        footerEl.insertAdjacentElement(
            'afterbegin',
            resetBtn.$el,
        )
    }
})
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容