假設(shè)有一個(gè) h5 app
項(xiàng)目,前后端完全分離,前后端通過(guò) json
進(jìn)行數(shù)據(jù)交流,前端使用 vue
進(jìn)行數(shù)據(jù)渲染開(kāi)發(fā)。
目前 ui
已經(jīng)把整個(gè)項(xiàng)目的界面都制作完畢,有 30+
張頁(yè)面。前端開(kāi)發(fā)中每個(gè) html
頁(yè)面不可避免的存在公共部分,一般會(huì)是如下公共部分:
<!DOCTYPE html>
<html>
<head>
<meta name='viewport' content='....'>
<!-- 這個(gè)地方根據(jù)不同的頁(yè)面也許會(huì)有新增的 meta文件??! -->
<!-- ...meta... ---->
<link rel='stylesheet' href='public/css/base.css' />
<link rel='stylesheet' href='public/css/module.css' />
<!-- 這個(gè)地方根據(jù)不同的頁(yè)面也許會(huì)有新增的 css 文件!! -->
<!-- ...link... ---->
<script src='plugins/Loading/loading.js'></script>
<script src='public/lib/jquery.js'></script>
<!-- 這個(gè)地方根據(jù)不同的頁(yè)面也許會(huì)有新增的 js文件?。?-->
<!-- ...script... ---->
<!-- 這個(gè)地方根據(jù)不同的要買(mǎi)呢標(biāo)題內(nèi)容不一致! --->
<title>標(biāo)題</title>
</head>
<body>
<!-- 用戶自定義內(nèi)容 -->
<!-- 請(qǐng)任意添加... -->
<script src='public/js/public.js'></script>
<!-- 這個(gè)地方根據(jù)不同的頁(yè)面也許會(huì)有新增的 js文件?。?-->
<!-- ...script... ---->
</body>
</html>
怎么把如上公共部分:<head>....</head>
等這些每個(gè)頁(yè)面都會(huì)加載的公共部分通過(guò) vue
的方式獨(dú)立出來(lái),然后在每個(gè)頁(yè)面加載這些公共部分??這解決的問(wèn)題是避免碰到如果需要向所有頁(yè)面公共部分增加一些代碼時(shí)蛋疼的逐個(gè)頁(yè)面進(jìn)行改動(dòng) ......
以上我可能沒(méi)有很好的表述清楚我的需求,類比一些 PHP Laravel
框架的 blade
模板:
定義一個(gè)頂級(jí)頁(yè)面(top.blade.php
),定義一個(gè)應(yīng)用級(jí)通用頁(yè)面(public.blade.php
),在根據(jù)每個(gè)控制器/方法定義一個(gè)具體頁(yè)面(index.blade.php
)。
繼承:index.blade.php
繼承 public.blade.php
,public.blade.php
繼承 top.blade.php
。
通過(guò)這種方式,如果公共部分新增文件,那么僅需要在 public.blade.php or top.blade.php
中新增內(nèi)容就輕松實(shí)現(xiàn)了所有頁(yè)面增加公共部分的需求!!
實(shí)際我就是打算在純前端的情況下實(shí)現(xiàn)類似后端模板引擎的功能??!請(qǐng)問(wèn)該如何實(shí)現(xiàn)??
我不知道我是否理解錯(cuò)誤了。
1) 如果是單頁(yè)應(yīng)用的話,頭尾這樣的部分只需要在入口HTML中寫(xiě)一次就好了
2) 如果是多個(gè)頁(yè)面并且每個(gè)頁(yè)面的主體內(nèi)容是通過(guò)vue去渲染,html中只是框架結(jié)構(gòu)的話。那么我個(gè)人覺(jué)得你可以使
用 pug, pug 支持模板繼承,自定義標(biāo)簽。這樣30+的頁(yè)面頭部,頁(yè)腳和相同的部分都使用一套模板,修改起來(lái)也快
速。
看情況你是vue做的多頁(yè)面應(yīng)用對(duì)吧?也沒(méi)用到前端路由,如果不使用后端模板引擎或者構(gòu)建工具的話,估計(jì)只能使用純前端模板了,試試這個(gè)art-template
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。