diff options
author | Marvin Borner | 2018-12-05 17:31:36 +0100 |
---|---|---|
committer | Marvin Borner | 2018-12-05 17:31:36 +0100 |
commit | 9d1a810fa983a045294e6d0b8ad761f5dbfb8939 (patch) | |
tree | 46c8796cd6747b3746478b4e3b8b29226f588ddb /resources/js |
Initial commit (actually already finished)
Diffstat (limited to 'resources/js')
-rw-r--r-- | resources/js/app.js | 33 | ||||
-rw-r--r-- | resources/js/bootstrap.js | 56 | ||||
-rw-r--r-- | resources/js/components/ExampleComponent.vue | 23 |
3 files changed, 112 insertions, 0 deletions
diff --git a/resources/js/app.js b/resources/js/app.js new file mode 100644 index 0000000..2179613 --- /dev/null +++ b/resources/js/app.js @@ -0,0 +1,33 @@ + +/** + * First we will load all of this project's JavaScript dependencies which + * includes Vue and other libraries. It is a great starting point when + * building robust, powerful web applications using Vue and Laravel. + */ + +require('./bootstrap'); + +window.Vue = require('vue'); + +/** + * The following block of code may be used to automatically register your + * Vue components. It will recursively scan this directory for the Vue + * components and automatically register them with their "basename". + * + * Eg. ./components/ExampleComponent.vue -> <example-component></example-component> + */ + +// const files = require.context('./', true, /\.vue$/i) +// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key))) + +Vue.component('example-component', require('./components/ExampleComponent.vue')); + +/** + * Next, we will create a fresh Vue application instance and attach it to + * the page. Then, you may begin adding components to this application + * or customize the JavaScript scaffolding to fit your unique needs. + */ + +const app = new Vue({ + el: '#app' +}); diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js new file mode 100644 index 0000000..c1f8ac3 --- /dev/null +++ b/resources/js/bootstrap.js @@ -0,0 +1,56 @@ + +window._ = require('lodash'); + +/** + * We'll load jQuery and the Bootstrap jQuery plugin which provides support + * for JavaScript based Bootstrap features such as modals and tabs. This + * code may be modified to fit the specific needs of your application. + */ + +try { + window.Popper = require('popper.js').default; + window.$ = window.jQuery = require('jquery'); + + require('bootstrap'); +} catch (e) {} + +/** + * We'll load the axios HTTP library which allows us to easily issue requests + * to our Laravel back-end. This library automatically handles sending the + * CSRF token as a header based on the value of the "XSRF" token cookie. + */ + +window.axios = require('axios'); + +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + +/** + * Next we will register the CSRF Token as a common header with Axios so that + * all outgoing HTTP requests automatically have it attached. This is just + * a simple convenience so we don't have to attach every token manually. + */ + +let token = document.head.querySelector('meta[name="csrf-token"]'); + +if (token) { + window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content; +} else { + console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token'); +} + +/** + * Echo exposes an expressive API for subscribing to channels and listening + * for events that are broadcast by Laravel. Echo and event broadcasting + * allows your team to easily build robust real-time web applications. + */ + +// import Echo from 'laravel-echo' + +// window.Pusher = require('pusher-js'); + +// window.Echo = new Echo({ +// broadcaster: 'pusher', +// key: process.env.MIX_PUSHER_APP_KEY, +// cluster: process.env.MIX_PUSHER_APP_CLUSTER, +// encrypted: true +// }); diff --git a/resources/js/components/ExampleComponent.vue b/resources/js/components/ExampleComponent.vue new file mode 100644 index 0000000..2805329 --- /dev/null +++ b/resources/js/components/ExampleComponent.vue @@ -0,0 +1,23 @@ +<template> + <div class="container"> + <div class="row justify-content-center"> + <div class="col-md-8"> + <div class="card card-default"> + <div class="card-header">Example Component</div> + + <div class="card-body"> + I'm an example component. + </div> + </div> + </div> + </div> + </div> +</template> + +<script> + export default { + mounted() { + console.log('Component mounted.') + } + } +</script> |