Effettuare richieste AJAX con Vue.js
Specifichiamo cha parliamo della versione di 2 di Vue.js.
Lo sto cominciando a vedere adesso, quindi non so quante differenze ci siano con la versione 1.
Comunque, vediamo come effettuare richieste AJAX e di conseguenza riepire una tabella.
Cominciamo con Javascript:
let remoteUrl = 'YOUR_URL';
var app = new Vue({
el: '#app',
data: {
items: []
},
created: function () {
this.getFilms();
},
methods: {
getFilms: function () {
this.$http.get(remoteUrl).then(response => {
this.items = response.body;
}, response => {
alert(response);
});
}
}
});
Il modulo $http fa parte della libreria vue-resource.
Mi hanno vivamente scongiliato di usare jQuery in questo caso; ed in effetti con jQuery non mi funzionava (potete guardare la mia richiesta su Stack Overflow).
Il nostro file HTML sarà così:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MP Films</title>
</head>
<body>
<div id="app">
<table>
<thead>
<tr>
<th>NOME</th>
<th>DATA</th>
<th>DIMENSIONE</th>
<th>TIPO</th>
</tr>
</thead>
<tbody>
<tr v-for="item in items">
<td>{{item.nome}}</td>
<td>{{item.data}}</td>
<td>{{item.size}}</td>
<td>{{item.ext}}</td>
</tr>
</tbody>
</table>
</div>
<script src="https://unpkg.com/vue"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-resource@1.3.4"></script>
<script src="script.js"></script>
</body>
</html>
Il file remoto, fatto in PHP:
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET");
include_once './GestioneFile.php';
$gf = new GestioneFile();
$dirVolume1 = '/media/nas_film/Volume_1';
$files = $gf->getFiles($dirVolume1);
echo json_encode($files);
Senza entrare troppo nel dettaglio, fa lo scan di una cartella e manda in output il risultato in formato JSON.
Ma non fa differenza il linguaggio che usate lato server.
Enjoy!
javascript vue.js $http ajax json
Commentami!