鍍金池/ 問答/HTML5  HTML/ vue可以綁定全局屬性嗎?

vue可以綁定全局屬性嗎?

clipboard.png

一個toash組件,我設(shè)置的時間為1800毫秒,一個項目有N個頁面用到toash。如果哪天產(chǎn)品叫我改為3000毫秒那我不得一個一個改,有好的解決方法嗎?

<toast
    v-model="msg"
    type="text"
    :time="1800"
    position="top"
    text="刪除成功">
</toast>
回答
編輯回答
玩控

<toast

v-model="msg"
type="text"
:time="time"
position="top"
text="刪除成功">

</toast>

作為一個子組件 props接收父組件傳遞的time 父組件的時間可以引入全局的變量,全局變量可以定義在main.js里面window.TOAST_TIME = 1800

2018年7月9日 11:51
編輯回答
吢丕

1、建立一個配置變量的js:

export const TIME = 1800

2、在需要的vue文件中 import進(jìn)去這個文件變量

import {TIME} from './config.js'
2017年5月16日 18:47
編輯回答
不歸路

可以用layer.msg()啊

2017年7月8日 15:14
編輯回答
筱饞貓

main.js里面寫上,window.TOAST_TIME = 1800
用的時候也直接用window.TOAST_TIME 就OK了
簡單粗暴
嘿嘿

樓主還是不要被我?guī)?/p>

優(yōu)雅的實(shí)現(xiàn)肯定還是把toash打個包,做成vue的components,這樣你只要在這個組件里面寫一次就可以了,要用到的地方進(jìn)行組件引入,還可以把一些參數(shù)做成props,每個調(diào)用組件的地方都可以做自定義,豈不美滋滋

2018年4月10日 08:38
編輯回答
撥弦

最簡單的方法你在組件內(nèi)設(shè)置

props:{
    time: {
        type: Number,
        default: 1800
    }
}

最好設(shè)一個全局變量。則做一個

data.js
export const TOAST_TIME = 1800
import {TOAST_TIME} from '........./data'
props:{
    time: {
        type: Number,
        default: TOAST_TIME
    }
}

然后你在傳入的時候 如果不是 1800 特殊的 改一下 就可以了

2017年5月20日 02:42