Heim  >  Artikel  >  Web-Frontend  >  Verwenden Sie Axios, um Dateien in Vue hochzuladen

Verwenden Sie Axios, um Dateien in Vue hochzuladen

亚连
亚连Original
2018-06-19 16:43:052199Durchsuche

Ich habe Axios kürzlich gelernt und es dann im Projekt verwendet. Daher stellt Ihnen dieser Artikel hauptsächlich die relevanten Informationen zur Verwendung von Axios in Vue vor, um eine Echtzeitaktualisierung des Datei-Upload-Fortschritts zu erreichen Einführung in Axios und seine Methoden. Jeder versteht das Lernen. Freunde, die es brauchen, können unten gemeinsam lernen.

Axios-Einführung

Axios ist ein Promise-basierter HTTP-Client für Browser und Nodejs. Er weist die folgenden Eigenschaften auf:

  • XMLHttpRequest über den Browser erstellen

  • HTTP-Anfrage von node.js erstellen

  • Support Promise API

  • Abfangen von Anfragen und Antworten

  • Anfrage- und Antwortdaten konvertieren

  • Anfrage abbrechen

  • JSON-Daten automatisch konvertieren

  • Der Client unterstützt die Verhinderung von CSRF/XSRF

Einführungsmethode:

$ npm install axios
//使用淘宝源
$ cnpm install axios
//或者使用cdn:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

Wenn Sie andere Plug-Ins installieren, können Sie diese direkt in main.js einführen und Vue.use() zum Registrieren verwenden. Axios ist jedoch kein Vue-Plug-In, daher können Sie Vue.use() nicht verwenden , also einfach Kann sofort in jede Komponente eingeführt werden, die eine Anfrage senden muss.

Um dieses Problem zu lösen, haben wir nach der Einführung von Axios die Prototypenkette geändert, um sie benutzerfreundlicher zu machen.

//main.js

import axios from &#39;axios&#39;
Vue.prototype.$http = axios

Nachdem Sie diese beiden Codezeilen zu main.js hinzugefügt haben, können Sie den Befehl $http direkt in den Methoden der Komponente verwenden

methods: {
postData () {
this.$http({
method: &#39;post&#39;,
url: &#39;/user&#39;,
data: {
name: &#39;xiaoming&#39;,
info: &#39;12&#39;
}
})
}

Für Weitere Grundkenntnisse finden Sie in diesem Artikel: //www.jb51.net/article/110324.htm

vue verwendet Axios, um Echtzeitaktualisierungen des Datei-Upload-Fortschritts zu implementieren

Das Fortschrittsereignis wurde zu XHR Level 2 hinzugefügt, wodurch wir einen Echtzeit-Datenfortschrittsbalken hinzufügen können, während der Browser neue Daten empfängt, wodurch die Interaktion benutzerfreundlicher wird

vue-Vorlage

<p class="progress" @click="upload"
   :style="{backgroundImage:&#39;linear-gradient(to right,#C0C7CB 0%,#C0C7CB &#39;+progress+&#39;,#E1E6E9 &#39;+progress+&#39;,#E1E6E9 100%)&#39;}">

vue-js

 var form = new FormData()
 form.append(&#39;file&#39;, vm.$refs.upload.files[0])
 form.append(&#39;id&#39;, id)
 form.append(&#39;type&#39;, type)
 var config = {
  onUploadProgress: progressEvent => {
   var complete = (progressEvent.loaded / progressEvent.total * 100 | 0) + &#39;%&#39;
   this.progress = complete
  }
 }
 axios.post(`api/uploadFile`,
  form, config).then((res) => {
  if (res.data.status === &#39;success&#39;) {
   console.log(&#39;上传成功&#39;)
  }
 })

Das Obige habe ich für alle zusammengestellt und hoffe, dass es hilfreich sein wird alle in der Zukunft.

Verwandte Artikel:

Gibt es einen Fehler beim Aufruf von fs.renameSync in Node.js?

So konfigurieren Sie die React Native-Entwicklungsumgebung in VSCode

So installieren Sie Mint-UI in Vue

So implementieren Sie die Anzeige der Sammlungsdatendurchquerung in AngularJS

Das obige ist der detaillierte Inhalt vonVerwenden Sie Axios, um Dateien in Vue hochzuladen. 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