From d56e2810a1f9091fb0a0bc38ee411192ffe7145b Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sun, 25 Mar 2018 12:31:05 +0200 Subject: [PATCH] [main] manage VueRouter hook to pre-load page data before loading page content --- webpack/main.js | 33 +++++++++++++++++++++++++-------- webpack/page/noauth/register.js | 1 + 2 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 webpack/page/noauth/register.js diff --git a/webpack/main.js b/webpack/main.js index 8bbca3c..fb0a6f0 100644 --- a/webpack/main.js +++ b/webpack/main.js @@ -4,19 +4,36 @@ import auth_wrapper from './vue/auth/wrapper.vue' import noauth_wrapper from './vue/noauth/wrapper.vue' -/* (1) Setup Vue, VueRouter, Authentication lib */ +/* (1) Setup: Vue, VueRouter, Authentication, ClientDriver-s */ require('./setup.js'); -/* (2) Get appropriate page data */ -let auth_folder = (gs.get.auth) ? 'auth' : 'noauth'; -let page_file = gs.get.router.history.current.name || gs.get.routes[auth_folder][0].name; -/* (3) Load page script */ -require(`./page/${auth_folder}/${page_file}.js`); -/* (4) Select appropriate wrapper */ +/* (2) Set router hooks to load page data before loading content */ +gs.get.router.beforeEach((to, from, next) => { + + // {1} Ignore null name // + if( to.name == null ) + next(); + + // {2} Get appropriate page location // + let auth_folder = (gs.get.auth) ? 'auth' : 'noauth'; + let page_file = gs.get.router.history.current.name || gs.get.routes[auth_folder][0].name; + + // {3} Load page script // + require(`./page/${auth_folder}/${page_file}.js`); + console.log(`./page/${auth_folder}/${page_file}.js`); + + // {4} Let VueRouter do the magic // + next(); + +}); + + +/* (3) Select appropriate wrapper */ const wrapper = (gs.get.auth) ? auth_wrapper : noauth_wrapper; -/* (5) Render view */ + +/* (4) Render view */ Vue.use(VueRouter); new Vue({ el: '#vue', diff --git a/webpack/page/noauth/register.js b/webpack/page/noauth/register.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/webpack/page/noauth/register.js @@ -0,0 +1 @@ +