jade學(xué)習(xí)筆記

  • 編譯
    • jade index.jade,得到壓縮后的代碼(也就是沒有空格)
    • jade -P index.jade,得到格式化的代碼轻掩,縮進(jìn)都正常
    • jade -P -w index.jade,對(duì)jade文件實(shí)時(shí)編譯抄谐,就不用改一次然后命令行敲一次了,直接自動(dòng)編譯
  • 一個(gè)最簡(jiǎn)單的jade
doctype html
html
  meta(charset="utf-8")
  head
    title meng
  body
    h1 jade
  • 標(biāo)簽語法
    • class h1.classname
    • id h1#idname
    • class + id div.classname#idname可以連著寫,順序無所謂
    • div,很特殊如果直接寫#id,前面不寫div標(biāo)簽名邻耕,自動(dòng)生成一個(gè)id=id的div
    • 屬性寫法a(class='title',),類和id也可以這樣寫在括號(hào)里面奶赔,注意逗號(hào)分隔终吼。
    • 大段純文本
    p.  #這個(gè)點(diǎn)必須緊緊跟著p烛愧,表示下面的是一個(gè)
      wenben
      weben
      wenben
    p  #這叫管道文本
     |weneb
     |wene
    
    • 帶標(biāo)簽的大段文本
    p.
      wenbwne
      <strong>wenwbe</strong> #直接寫標(biāo)簽名
    或者
    p 
     | dss
     strong asdf #豎線的話元素不用寫尖括號(hào)
     | dsdfsf
    
  • 注釋
    • 單行注釋酪惭,直接在前面加//
    • 非緩沖注釋希痴,完全不會(huì)被編譯到html代碼中//-
    • 塊注釋,也是//-或者//
  • 寫樣式
style.
   body{color:red}
  • 寫js代碼
script.
  var i = 0
或者
- var i = 'hello'
- for (var k in value)等等

  • 聲明變量和替換
    • 第一種方式(寫在頁面里)
- var course = 'jade' #把變量聲明在頁面里
#這樣course就可以在整個(gè)文檔中被訪問了
#使用的時(shí)候#{course}就代表jade這個(gè)字符串了
#并且可以用js方法春感,#{course.toUpperCase()}砌创,將字符串變成大寫
  • 第二種方式(寫在命令行)
#命令行里面也可以傳一個(gè)變量
jade index.jade -P -w --obj'{"course":"jade"}' #注意語法

當(dāng)前文檔里聲明的變量?jī)?yōu)先級(jí)比命令行傳的變量高

  • 第三種方式(寫在json文件里)(命令行升級(jí)版)
json文件,index.json
{
  "course":"jade"
}
命令行
jade index.jade -P -w -O index.json
  • 插入一個(gè)值(轉(zhuǎn)義)
#什么時(shí)候會(huì)轉(zhuǎn)義,比如說要寫一個(gè)script標(biāo)簽放在一個(gè)變量里
- var htmlData = '<script>alert(1)</script>'這樣尖括號(hào)就會(huì)被轉(zhuǎn)義成&lt
  • 非轉(zhuǎn)義 p !{htmlData} p后面必須有空格這樣尖括號(hào)還是尖括號(hào)鲫懒,并且等同于p!= htmlData p后面緊跟嫩实,不能有空格
  • 安全轉(zhuǎn)義 p #{htmlData}常規(guī)引入變量,尖括號(hào)會(huì)被轉(zhuǎn)義,并且等同于p= htmlData
  • tip 如果要輸出窥岩!和#甲献,就得轉(zhuǎn)義\! \#
  • 存在一種特殊情況,當(dāng)值不存在或者未定義的時(shí)候颂翼,那么就不用寫#{}input(value=newData),這樣newData不論有沒有值晃洒,都可以,沒有值就相當(dāng)于沒有朦乏,不會(huì)顯示undefined

  • 代碼嵌入總結(jié)
    • -,eg- for (var x=0;x<3 x ++)
    • =,
    p
      = 'This is <p>' #特殊字符會(huì)被轉(zhuǎn)義球及,也就是尖括號(hào)
    
    • !=,特殊字符不會(huì)被轉(zhuǎn)義

  • 流程代碼
    • for each遍歷
    - var course = {course:"jade",level:"high"}
    - for (var k in course)
      p= course[k] #這樣就被直接執(zhí)行了
    
    • each遍歷,數(shù)組集歇,對(duì)象都可以
    each value in arr
      p= value
    
    • 選擇case
    case friends
      when 0
      when 1
      default
          p balalala
    
    • while循環(huán)
    while n < 4
      li= n++
    
    • 選擇if ...else if ... else
    - var user = { description: 'foo bar baz' }
    - var authorised = false
    #user
      if user.description
        h2 Description
        p.description= user.description
      else if authorised
        h2 Description
        p.description.
          User has no description,
          why not add one...
      else
        h1 Description
        p.description User has no description
    
    還有unless語句,不符合才執(zhí)行
    -var con = flas
    unless con
      p Hello,world#結(jié)果會(huì)生成p標(biāo)簽
    

  • mixins桶略,需要用+標(biāo)識(shí)符使用
mixin list
  ul
      li foo
      li bar
      li baz
+list
+list

帶參數(shù)的混合宏

mixin pet(name)
  li.pet= name
ul
  +pet('cat')
  +pet('dog')

...表示不定數(shù)量的參數(shù)

mixin list(id,...items)
  ul(id=id)
      each item in items
          li= item
+list('mylist',1,2,3,4)

  • includes,實(shí)現(xiàn)高度復(fù)用诲宇,將代碼片段保存在不同的文件中际歼,需要哪個(gè),導(dǎo)入哪個(gè)
#在需要的地方寫includes
html
  ./includes/head.jade

  • extends,實(shí)現(xiàn)繼承姑蓝,繼承與復(fù)用的區(qū)別在于繼承可以修改代碼鹅心,而復(fù)用是原原本本的代碼
    • 使用block標(biāo)識(shí)符,設(shè)置一個(gè)可修改代碼片段纺荧,緊跟block后面的是該代碼片段的名字
    block codename
        title Default title
    

  • Mixins,制造可重復(fù)使用的代碼段
    • 沒有變量的mixins
     //語法
    mixin list
      ul
          li foo
          li bar
          li baz
    //使用
    +list 即可
    
    • 傳入變量的mixins
    mixin pet(name)
      li.pet = name
    //使用
    ul
      +pet('cat')
    
    • 更復(fù)雜的mixins
    mixin article(title)
      .article
          .article-wrapper
              h1 = title
              if block
                  blcok //存放可變的代碼塊
              else
                  p no content
     //使用
     +article("hello")
     或者
     +article("hello block")
      p this is my block
    
    • mixins傳入的變量也可以用“rest arguments”語法
    mixin list(id,...items)
      ul(id=id)
          each item in items
              li= item
    //使用
    +list('my-list',1,2,3,4)
    

  • 坑坑坑旭愧!
    • 用webstorm有時(shí)正常有時(shí)報(bào)錯(cuò)空格和tab不能混合用,解決辦法:webstorm->preference->code style->jade->Tabs and Indents->勾選use tab charactor就行了宙暇!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末输枯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子占贫,更是在濱河造成了極大的恐慌桃熄,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件型奥,死亡現(xiàn)場(chǎng)離奇詭異瞳收,居然都是意外死亡碉京,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門螟深,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谐宙,“玉大人,你說我怎么就攤上這事界弧》豺撸” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵垢箕,是天一觀的道長(zhǎng)咽瓷。 經(jīng)常有香客問我,道長(zhǎng)舰讹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任闪朱,我火速辦了婚禮月匣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奋姿。我一直安慰自己锄开,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布称诗。 她就那樣靜靜地躺著萍悴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寓免。 梳的紋絲不亂的頭發(fā)上癣诱,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音袜香,去河邊找鬼撕予。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蜈首,可吹牛的內(nèi)容都是我干的实抡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼欢策,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼吆寨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起踩寇,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤啄清,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后姑荷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盒延,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缩擂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了添寺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胯盯。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖计露,靈堂內(nèi)的尸體忽然破棺而出博脑,到底是詐尸還是另有隱情,我是刑警寧澤票罐,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布叉趣,位于F島的核電站,受9級(jí)特大地震影響该押,放射性物質(zhì)發(fā)生泄漏疗杉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一蚕礼、第九天 我趴在偏房一處隱蔽的房頂上張望烟具。 院中可真熱鬧,春花似錦奠蹬、人聲如沸朝聋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冀痕。三九已至,卻和暖如春狸演,著一層夾襖步出監(jiān)牢的瞬間言蛇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工严沥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猜极,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓消玄,卻偏偏與公主長(zhǎng)得像跟伏,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子翩瓜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Jade和Sass一樣通過空格來控制格式受扳,一般推薦使用tab(2個(gè)空格鍵大小)來進(jìn)行縮進(jìn)。 一.Jade 小技巧 ...
    JamesSawyer閱讀 5,398評(píng)論 7 2
  • 《ijs》速成開發(fā)手冊(cè)3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,093評(píng)論 0 7
  • 筆記來自慕課網(wǎng)的js和《JavaScript DOM編程藝術(shù)》一書以及《JavaScript權(quán)威指南》一書的學(xué)習(xí)兔跌。...
    恰皮閱讀 715評(píng)論 3 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理勘高,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 世人總說,讀史使人明智赖舟,使人知興替蓬戚、明得失。而我們讀的歷史宾抓,就是它的全貌子漩、它的全然嗎?如果說從教科書石洗、暢銷書幢泼、研究...
    她時(shí)線閱讀 680評(píng)論 0 4