鍍金池/ 問(wèn)答/Linux  HTML/ vue v-if指令可以通過(guò)全局變量來(lái)判斷顯示隱藏么

vue v-if指令可以通過(guò)全局變量來(lái)判斷顯示隱藏么

clipboard.png
這是header組件 我是想通過(guò)一個(gè)全局變量來(lái)控制他的顯示隱藏 每當(dāng)離開(kāi)一個(gè)組件的時(shí)候 這個(gè)導(dǎo)航就關(guān)閉

clipboard.png
methods是這么寫(xiě)的 但是如果v-if="global.xxx" 就會(huì)報(bào)錯(cuò) 因?yàn)轫?xiàng)目就這一個(gè)需要保存狀態(tài)的地方 所以就不想用vuex來(lái)控制 小弟新手 想了半天沒(méi)想到怎么做 還請(qǐng)大家指點(diǎn)

回答
編輯回答
情已空

可以,在app.js里定義

Vue.prototype.$test=false
v-if="$test"
2017年1月6日 07:58
編輯回答
硬扛

將global換成window;
然后在computed里面綁定showNav
btw,為什么不用vuex呢?

2017年10月23日 19:19
編輯回答
糖豆豆

瀏覽器環(huán)境下沒(méi)有g(shù)lobal

2017年12月17日 05:30
編輯回答
初念

試試
// bus.js

var Vue from 'vue'
var bus = new Vue({
  data: {
    close: true
  }
})
bus.$on('close', function () {
  bus.close = !bus.close
})
export default bus

// router

import bus from 'bus'
var router = new Router(xxx)
router.afterEach((to, from) => { // 也可用beforeEach 路由變化觸發(fā)close事件。
  bus.$emit('close')
})
export default router

然后用到的地方。你的頭組件

import bus from 'bus'
computed () {
  close () {
    return bus.close
  }
}

以bus實(shí)例為樞紐,做數(shù)據(jù)的響應(yīng)與傳輸。
其實(shí)這就是個(gè)超簡(jiǎn)單的vuex。

向你之前的global.xxx =!global.xxx這種傳遞方式應(yīng)該是不能被vue監(jiān)測(cè)到的。

2017年10月19日 13:10