Vue.js 如何从组件vue更改主vuetify应用程序中的值

Vue.js 如何从组件vue更改主vuetify应用程序中的值,vue.js,vuejs2,Vue.js,Vuejs2,我有两个vue文件,app.vue和logincomponent.vue 我使用logincomponent.vue制作了一个模板,该模板可以登录到邮箱中,并使用脚本与wails中的go后端通信,代码本身可以工作,但我试图更改main app.vue中的值,但我无法使其工作 问题是: “如何从组件更改主vue应用程序中变量的值?” 进口: 变量: 塞特: 父组件(或主Vue实例)的状态是否可以从子组件更改的简短回答是否,或者至少不应该这样做。这是一种反模式,可能会在代码中产生错误 但你有两个选择

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

我使用logincomponent.vue制作了一个模板,该模板可以登录到邮箱中,并使用脚本与wails中的go后端通信,代码本身可以工作,但我试图更改main app.vue中的值,但我无法使其工作

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

进口: 变量: 塞特:
父组件(或主Vue实例)的状态是否可以从子组件更改的简短回答是,或者至少不应该这样做。这是一种反模式,可能会在代码中产生错误

但你有两个选择

  • 从子组件发出事件,并从父组件处理它。因此,父级负责用自己的逻辑更改自己的状态。 当您需要更改子组件中主实例的值时,您会发出事件,即使有可以传递给emit函数的值,您也会对主实例进行编程,以侦听该事件并做出相应的响应。 更多信息请点击此处:
  • 将Vuex应用商店添加到应用程序。通过这种方式,您可以抽象出应用程序的状态,这些状态对于几个组件来说是通用的。因此,您的子组件可以要求存储更改某些状态。 更多信息请点击此处:

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


main.vue中是否有sendLogin函数?我刚刚使用事件解决了这个问题,我创建了事件,并在登录完成后发出消息,谢谢您的帮助
    import LoginScreen from "./components/LoginScreen.vue"
        data: () => ({
            drawer: false,
            currentScreenID: 0,
            logged: false
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;
                        }
                    })
                }
            },