UNPKG

appblocks

Version:

A lightweight javascript library for building micro apps for the front-end.

137 lines (133 loc) 5.46 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Fetch test</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script> </head> <body> <div class="container"> <div class="row"> <div class="col-md-4"></div> <div id="app" class="col-md-4"> </div> <div class="col-md-4"></div> </div> </div> <template id="appTemplate"> <h1>Testing fetch!</h1> <h2 c-if="isLoading">Loading...</h2> <div c-if="isSuccessful"> <h2>Success!</h2> <p>{data.user.id} | {data.user.name} | {data.user.first_name} {data.user.last_name}</p> </div> <div c-if="hasError"> <h2>Error!</h2> <p>{data.error}</p> </div> </template> <script src="https://cdn.jsdelivr.net/npm/axios@1.6.7/dist/axios.min.js"></script> <script src="../dist/appblocks.umd.js"></script> <script> var app = new AppBlock({ el: document.getElementById('app'), template: document.getElementById('appTemplate'), renderEngine: 'Idiomorph', methods: { testAxiosGet(app) { app.axiosRequest( { url: 'https://reqres.in/api/users/2', method: 'GET' }, { success(response) { console.log(response); app.data.user = response.data.data; }, error(error) { console.log(error); app.data.error = error; }, finally() {console.log('finished')} }, 1000 ); }, testFetchGet(app) { app.fetchRequest('https://reqres.in/api/users/2', { method: 'GET', }, { success(data) { console.log(data); app.data.user = data.data; }, error(error) { console.log(error); app.data.error = error; }, finally() {console.log('finished')} }, 1000 ) }, testAxiosPost(app) { app.axiosRequest({ url: 'https://reqres.in/api/users', method: 'POST', headers: { 'Content-Type': 'application/json', }, data: { "name": "morpheus", "job": "leader" } }, { success(request) { console.log(request); app.data.user = request.data; }, error(error) { console.log(error); app.data.error = error; }, finally() {console.log('finished')} }, 1000) }, testFetchPost(app) { app.fetchRequest('https://reqres.in/api/users', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ "name": "morpheus", "job": "leader" }) }, { success(data) { console.log(data); app.data.user = data; }, error(error) { console.log(error); app.data.error = error; }, finally() {console.log('finished')} }, 1000 ) } } }) setTimeout(function() { app.methods.testAxiosPost(app); }, 1000); </script> </body> </html>