鍍金池/ 問(wèn)答/HTML/ vue 和 webpack 配合使每個(gè)或幾個(gè)路由打出單獨(dú)的js, 而且每個(gè)路由

vue 和 webpack 配合使每個(gè)或幾個(gè)路由打出單獨(dú)的js, 而且每個(gè)路由頁(yè)面是有公用區(qū)域的

有前端react開(kāi)發(fā)經(jīng)歷和后端基礎(chǔ),最近在學(xué)vue,但對(duì)于webpack 打包及 Vue 的模板父子組件傳參了解尚淺。
如圖, 這是 我學(xué)習(xí)人家的 vue+node+mysql 項(xiàng)目 , 其默認(rèn)用的是所有頁(yè)面打包在一個(gè) index.js 里面,用的hash路由,但考慮到后臺(tái)頁(yè)面很多,我想用pushState的路由方式且每個(gè)或幾個(gè)路由都打出單獨(dú)的js文件,即訪問(wèn)某頁(yè)面才加載該頁(yè)面的js文件。
圖片描述
我用vue-router總是出現(xiàn)所有路由文件打成了一個(gè)js,只好棄用,笨笨地使用好幾個(gè)new HtmlWebpackPlugin(conf) 的方式打出了不同的頁(yè)面, 但是這些頁(yè)面的獨(dú)有內(nèi)容無(wú)法放在同一個(gè)公共模板下。

這是需要嵌入特有路由內(nèi)容的公共模板文件:

圖片描述

這是某個(gè)路由文件,我不知道怎么把這個(gè)路由特有內(nèi)容傳遞給公共模板

圖片描述

有哪些大俠遇到過(guò)此類(lèi)問(wèn)題或者有類(lèi)似解決方案的項(xiàng)目鏈接,歡迎向我拋來(lái),感激不盡~

回答
編輯回答
玩控

如果是SPA的話,就只能打包到一個(gè)文件里面,因?yàn)?,除了你空蕩蕩的index.html文件。剩下的操作基本上都在index.js里面,所以你說(shuō)的按照路由去加載不同的js,這怕是難到了webpack,如果你是多頁(yè)應(yīng)用,我記得webpack有多頁(yè)應(yīng)用的打包插件,會(huì)使你的html和js單獨(dú)打包,不會(huì)打包其他頁(yè)面的js文件

2017年5月23日 09:44
編輯回答
筱饞貓

很感謝 toBeTheLight 的提點(diǎn),經(jīng)過(guò)多方嘗試后,在總路由入口router.js中使用 const Admin = () => import('../components/admin.vue'), 的方式, 使打出來(lái)既有公用的index.js, 又有在訪問(wèn)相應(yīng)路由時(shí)才加載的各個(gè)頁(yè)面js. 要注意const Admin = () => import('../components/admin.vue') 這句話中的import要想被正確解析,需要引入babel的一種插件 syntax-dynamic-import
圖片描述

圖片描述

圖片描述

圖片描述
圖片描述

2017年6月14日 13:34
編輯回答
尐飯團(tuán)

我也是新手 沒(méi)太看懂

如果是vue-cli搭建的spa項(xiàng)目

1.父組件設(shè)置<router-view/> 路由不同顯示內(nèi)容不同,配合設(shè)置router.js

2.子組件向父組件通過(guò) this.emit('fn_name','第二個(gè)參數(shù)傳參,可以在父組件用fn_name($event)接受,如果觸發(fā)父組件方法,可以不傳此參數(shù)')

父組件中<child @fn_name='fn_name'></child> 子組件調(diào)用父組件fn_name函數(shù)
傳參的話用':'符號(hào)代替‘@’

2017年12月15日 05:35
編輯回答
醉淸風(fēng)

看到你寫(xiě)的pushState,你是用的原生js api嗎,沒(méi)用vue-router?

其實(shí)第一張配圖后面的內(nèi)容都沒(méi)看懂。然后不知道vue 路由懶加載搜出來(lái)的東西是你想要的不。

2017年6月5日 00:49