Heim  >  Artikel  >  Web-Frontend  >  Kann Vue eine Synchronisierung durchführen?

Kann Vue eine Synchronisierung durchführen?

藏色散人
藏色散人Original
2023-01-29 11:33:541672Durchsuche

vue kann mit Vue synchronisiert werden: 1. Erstellen Sie eine Vue-Beispieldatei. 2. Durch „data(){return;“ userInfo: {id: '',username: '',password:'',avatar: '',},}}methods:{getUserInfo: function () {let _this = this;this.axios({...} ) "Um Synchronisation zu erreichen

Implementierung der Synchronisierungsmethode in Vue

Kann Vue eine Synchronisierung durchführen?Szenario: Bei der Implementierung der Anmeldefunktion wird über den Benutzernamen des Formulars eine Anfrage an den Hintergrund gesendet. Das Front-End geht davon aus, dass die Verarbeitung abgeschlossen ist, und setzt die Ausführung fort, jedoch vor dem Hintergrunddaten werden zurückgegeben, der Benutzer erhält vom Front-End. Die Daten sind leer.

Implementierung: Warten Sie, bis die Anforderungsmethode Daten zurückgibt, fahren Sie mit der Ausführung fort und implementieren Sie die Synchronisierungsmethode.
Originalcode
data() {
          	return {

                userInfo: {
                    id: '',
                    username: '',
                    password: '',
                    avatar: '',
                },
            }}methods:{
	getUserInfo: function () {
    	let _this = this;
    	this.axios({
        	url: "http://localhost:8088/verifyLogin",
        	headers: {
            	'Content-Type': 'application/json;charset=utf-8'
        	},
        	method: "post",
        	params: {
            	'userName': _this.form.username        	}
    	}).then(function (resp) {
        	_this.userInfo = resp.data;
        	console.log('11111111');
    	})
	},
    
    
    onSubmit(formName) {
        let _this = this;
        this.getUserInfo();
		// 为表单绑定验证功能
        this.$refs[formName].validate((valid) => {
            if (valid) {
                console.log("22222222");  
                console.log(_this.userInfo);
            } else {
            }
        });
   }}
Konsolendruck

Problem gefunden: 1 auf der 2. Seite Ausgabe, und es ist immer noch leer, nachdem ein Wert aus Daten zugewiesen wurde

Lösung: Verwenden Sie async/await, um eine Synchronisierung zu erreichen

data() {
          	return {

                userInfo: {
                    id: '',
                    username: '',
                    password: '',
                    avatar: '',
                },
            }}methods:{
	async getUserInfo(params) {
    	let _this = this;
    	let isSuccess = false;
    	await this.axios({
        	url: "http://localhost:8088/verifyLogin",
        	headers: {
            	'Content-Type': 'application/json;charset=utf-8'
        	},
        	method: "post",
        	params: {
            	'userName': _this.form.username        	}
    	}).then(function (resp) {
        	_this.userInfo = resp.data;
            console.log("11111111");
        	isSuccess = true;
    	});
    	return isSuccess;
	},

    onSubmit(formName) {
        let _this = this;
        this.getUserInfo(_this.form.username).then(function (result) {
            if (result) {
                // do sth.
                 // 为表单绑定验证功能
                _this.$refs[formName].validate((valid) => {
                    if (valid) {
                            console.log("22222222");  
                			console.log(_this.userInfo);
                        }
                    } else {
                    }
                });
            } else {
                // do other sth.
            }
        })
       
    }}
Das geänderte Ergebnis

Empfohlenes Lernen: „

vue Video-Tutorial

Das obige ist der detaillierte Inhalt vonKann Vue eine Synchronisierung durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn