在vue里如何使用pug模板引擎
vue使用pug模板引擎
pug,原名jade,是流行的HTML模板引擎,它是HAML在JavaScript上的實(shí)現(xiàn),最大的特色是使用縮進(jìn)排列替代成對(duì)標(biāo)簽。
在vue中使用的話 需要事先安裝依賴
#安裝支持pug依賴 npm install pug pug-loader pug-filters -D #安裝支持jade依賴 npm install jade jade-loader -D
后在你的vue項(xiàng)目文件中的webpack.base.conf.js中,在module的rules節(jié)點(diǎn)下添加配置:
{
test: /\.jade$/,
loader: "jade"
},
{
test: /\.pug$/,
loader: 'pug'
}然后在template標(biāo)簽中 lang=“pug” 即可啟用
當(dāng)然 怎么用就得去官網(wǎng)查看了 pug官網(wǎng)
pug模板引擎基本用法
Pug是jade的新版,jade由于商標(biāo)已被注冊(cè),所以更名為pug。
縮進(jìn)標(biāo)注:Pug模板和大多數(shù)模板不同,它有自己的語(yǔ)法特點(diǎn),采用縮進(jìn)的方式進(jìn)行標(biāo)注,使用這種方式,使得代碼更加清晰。
無(wú)尾標(biāo)簽:這種語(yǔ)法不需要類似 /html 這樣的尾標(biāo)簽。
文本書寫:在標(biāo)簽后 +空格+內(nèi)容 的方式進(jìn)行書寫文本,例如下面代碼中 h1后跟的 website即為標(biāo)題名文本。
屬性添加:在標(biāo)簽后用()括號(hào)對(duì)屬性進(jìn)行編寫。
//views文件夾下index.pug文件
html
head
title Home
link(rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css" rel="external nofollow" )
script(src="/lib/bootstrap/dist/js/bootstrap.min.js")
style
include myStyle.css
body
div(class='container')
h1 website
div(class='row')
div(class='col') column1
div(class='col') column2
div(class='col') column3
script
include myScript.js
引入方式:
自編寫文件:使用include +文件名對(duì)文件進(jìn)行引入。
第三方包文件:在服務(wù)器上通過(guò)nodejs結(jié)合express方式,使用app.use引入中間件。(此處例子導(dǎo)入bootstrap,需提前安裝—— 在命令行通過(guò)npm install bootstrap進(jìn)行安裝)
//server.js文件
const express = require('express')
const app = express()
const expressPort = 3000
app.listen(3000, () => {
console.log(`App listening on port ${expressPort}`);
})
app.set('view engine','pug');
//通過(guò)app.set方式讓pug進(jìn)入node項(xiàng)目中
//app.set('views','./views'),pug默認(rèn)地址會(huì)在一個(gè)叫views的文件夾里
app.use('/lib/bootstrap',express.static('node_modules/bootstrap/dist'))
//use方法作用:即引入一個(gè)所謂的中間件(將工作目錄中動(dòng)態(tài)文件變成靜態(tài)文件提供給服務(wù)器)
//引用提前安裝好的bootstrap(npm init bootstrap)
//'/lib/bootstrap'是一個(gè)虛擬地址,并不存在這個(gè)文件夾,但是可以通過(guò)這個(gè)路徑對(duì)bootstrap文件進(jìn)行訪問(wèn)。
app.get('/',(req,res)=>{
res.render('index');
})傳參方式:具體為在后端代碼中與pug模板引擎的傳參方式。
在server.js后端代碼中準(zhǔn)備好傳參數(shù)據(jù):
app.get('/',(req,res)=>{
const options={
name:'WangJunjie',
age:'21'
}
res.render('index',options); //options為傳入?yún)?shù),直接在統(tǒng)一作用域中進(jìn)行調(diào)用
})在index.pug文件中進(jìn)行使用(通過(guò) #{ } 的方式):
body
div(class='container')
h1 #{name}'s website //通過(guò)#{參數(shù)內(nèi)部屬性名}方式
div(class='row')
div(class='col') column1
div(class='col') column2
div(class='col') column3
script 
這樣就拿到了后端中的name數(shù)據(jù),將name數(shù)據(jù)渲染到.pug文件上了。
同時(shí),可以通過(guò) script.的方式,將后端代碼中的變量賦值給前端代碼:
body
div(class='container')
h1 website
div(class='row')
div(class='col') column1
div(class='col') column2
div(class='col') column3
script.
const name = '#{name}';
const age = '#{age}';
script
include myScript.js特殊字符:
- “|” ,|后的字符會(huì)被原樣輸出。
- “.” ,.表示下一級(jí)的所有字符都會(huì)被原樣輸出,不再被識(shí)別。是|的升級(jí)版,實(shí)現(xiàn)批量處理。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue router使用query和params傳參的使用和區(qū)別
本篇文章主要介紹了vue router使用query和params傳參的使用和區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
vant van-list下拉加載更多onload事件問(wèn)題
這篇文章主要介紹了vant van-list下拉加載更多onload事件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
vite配置@別名以及讓vscode智能提示路經(jīng)的步驟
這篇文章主要給大家介紹了關(guān)于vite配置@別名以及讓vscode智能提示路經(jīng)的步驟,文中通過(guò)代碼示例以及圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-08-08
在vue中使用cookie記住用戶上次選擇的實(shí)例(本次例子中為下拉框)
這篇文章主要介紹了在vue中使用cookie記住用戶上次選擇的實(shí)例(本次例子中為下拉框),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
Vue 自定義標(biāo)簽的src屬性不能使用相對(duì)路徑的解決
這篇文章主要介紹了Vue 自定義標(biāo)簽的src屬性不能使用相對(duì)路徑的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
詳解最新vue-cli 2.9.1的webpack存在問(wèn)題
這篇文章主要介紹了最新vue-cli 2.9.1的webpack存在問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12

