【发布时间】:2020-05-29 07:33:46
【问题描述】:
我刚刚在我的main.js 中创建了两个变量$isCompany 和$isLoggedIn。
import Vue from "vue";
import App from "./App.vue";
import "./registerServiceWorker";
import router from "./router";
Vue.config.productionTip = false;
Vue.prototype.$isCompany = true;
Vue.prototype.$isLoggedIn = true;
new Vue({
router,
render: h => h(App)
}).$mount("#app");
我的问题:
如何在Navigation.vue 的<Button> 组件中访问这些变量?
v-ifs 正在工作,但我无法切换变量的值,所以我认为覆盖该值存在问题。
<div v-if="this.$isLoggedIn" class="header-left">
<User v-if="this.$isCompany" name="Company" img="..."></User>
<User v-if="!this.$isCompany" name="Not Company" img="..."></User>
<Button @onclick="this.$isCompany = !this.$isCompany" :color="'grey'" :isIconOnly="true"><b-icon icon="arrow-down-up"></b-icon></Button>
</div>
如果您需要,这里是我将@onclick 绑定到我的<Button> 组件的方式:
<button @click="$emit('onclick')" :class="['button', 'size-'+size, 'color-'+color, isRounded ? 'type-rounded' : '', isIconOnly ? 'type-icon-only' : '']">
【问题讨论】:
-
这能回答你的问题吗? How to react to a global variable with Vue?
-
您确定
v-if="this.$isLoggedIn"有效吗?this不应在此处使用。
标签: vue.js variables scope global-variables