首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从组件vue中改变主虚拟应用程序的价值

如何从组件vue中改变主虚拟应用程序的价值
EN

Stack Overflow用户
提问于 2020-02-15 18:43:17
回答 1查看 610关注 0票数 0

我有两个vue文件,app.vue和logincomponent.vue。

我使用logincomponent.vue来制作登录框中的模板,并使用脚本在wails中与go后端通信,代码本身也能工作,但我试图在主app.vue中更改值,但我无法让它工作。

问题是:“如何从组件中更改主vue应用程序中变量的值?”

进口:

代码语言:javascript
复制
    import LoginScreen from "./components/LoginScreen.vue"

变量:

代码语言:javascript
复制
        data: () => ({
            drawer: false,
            currentScreenID: 0,
            logged: false

策划人:

代码语言:javascript
复制
sendLogin: function () {
                var self = this;
                if (this.$refs.login_form.validate()) {
                    self.dialog = true;
                    self.loadingCircleLogin = true;
                    self.login_dialog_title = self.login_dialog_logging_title;
                    window.backend.sendLoginToBackend(self.email, self.password, self.remember_email).then(result => {
                        if (result === false) {
                            self.loadingCircleLogin = false;
                            self.loginFailText = true;
                            self.login_dialog_title = self.login_dialog_error_title;
                        } else {
                            self.dialog = false;
                            self.currentScreenID = 3;
                        }
                    })
                }
            },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-15 19:34:50

如果父组件(或主Vue实例)的状态可以从子组件更改,那么简单的回答是no或至少它不应该是。它是一种反模式,可以在代码中生成bug。

但你有两个选择。

  • 若要从子组件发出事件,并从父组件处理事件,请执行以下操作。因此,父级负责用自己的逻辑改变自己的状态。当您需要从一个子组件中更改一个来自主实例的值时,就会发出该事件,即使有一个可以传递给emit函数的值,您也可以对主实例进行编程,以侦听该事件并作出相应的响应。更多信息在这里:侦听子组件事件
  • 将Vuex商店添加到应用程序中。通过这种方式,您可以抽象出几个组件所共有的应用程序状态。这样,您的子组件就可以要求商店更改某些状态。更多信息在这里:维克斯

使用Vuex更复杂,如果你的应用程序很简单,我会选择第一个选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60241984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档