整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript轉譯神奇-babel入門

          JavaScript轉譯神奇-babel入門

          何在前端JavaScript開發中使用ES新特性?babel是什么?.babelrc文件又是干什么用的?文件中的presets和plugins又是什么鬼?本文將解答上述疑問。

          babel是什么

          babel是一個JavaScript編譯器

          為什么要babel

          ES規范今年來更新較為頻繁,近幾個版本推出很多新的特性,而用戶的瀏覽器版本眾多,很多用戶用的是老版本瀏覽器,老版本瀏覽器不支持ES新特(nodejs也存在同樣問題,參見),babel就是用來讓你可以使用ES新特性,又可以使代碼運行在老版本瀏覽器上。

          Babel 通過語法轉換器支持最新版本的 JavaScript 。 語法轉換插件允許你立刻使用新語法,無需等待瀏覽器支持。

          babel工作流程簡介

          解析-->轉換-->生成代碼
          
          • 解析生成AST語法樹
          • 根據插件對AST樹進行遍歷轉譯并得到新的AST樹(新特性轉譯)
          • 生成代碼

          babel使用

          1.在構建工具中(以webpack為例)使用:

          // 在webpack.config.js中增加babel-loader,如下所示
          module: {
           rules: [
           { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }
           ]
          }
          

          2.在babel-cli中使用

          npm install -g babel-cli
          babel src -d lib // 將src中的代碼轉譯并將生成的文件放到lib目錄下
          復制代碼
          

          babel的配置

          babel的配置是要告訴babel工具使用哪些插件轉譯代碼,主要作用于babel工作的第二階段(轉譯)

          babel工作前會從.babelrc文件讀取配置,根據配置對JavaScript進行轉譯。

          下面以.babelrc文件的配置方式為例介紹,配置項主要有兩個,presets,plugins;

          {
           "presets": ["env"],
           "plugins": ["babel-plugin-transform-object-assign"]
          }
          

          plugins配置具體插件,而對于ES新特性需要配置的插件多達幾十個,如果一一配置就太麻煩來,于是babel給我們提供一些插件集,插件集配置在presets配置項中,目前官方提供的插件集有:

          1. env
          2. react
          3. flow

          其中 env(babel-preset-env)相當于 es2015 ,es2016 ,es2017 及最新版本。

          4. stage-X

          Stage-x preset 中的任何轉換都是對未被批準為 JavaScript 版本一部分的語言的變化(如 es6 / es2015 ),其分為以下5各階段:

          Stage 0 - 稻草人: 只是一個想法,可能是 babel 插件。
          Stage 1 - 提案: 初步嘗試。
          Stage 2 - 初稿: 完成初步規范。
          Stage 3 - 候選: 完成規范和瀏覽器初步實現。
          Stage 4 - 完成: 將被添加到下一年度發布。
          

          上述配置的插件和插件集也是需要通過npm安裝的

          npm install babel-preset-env --save-dev
          npm install babel-plugin-transform-object-assign --save-dev
          

          babel presets(轉換插件集)配置

          "presets": ["env"] // 默認將運行所有transfrom和集成所有的polyfill
          

          也可以僅僅配置項目所支持瀏覽器所需的polyfill和transform。只編譯所需的代碼會使你的代碼包更小。如下所示,該轉換只支持每個瀏覽器最后兩個版本和safari大于等于7的版本所需的polyfill和代碼轉換。

          、行級標簽轉換為塊級標簽

          轉換為塊級標簽,各自獨占一行,且可以設置寬高

          代碼:<a href="">我是a標簽</a>

          <a href="">我是a標簽</a>

          <a href="">我是a標簽</a>

          CSS :display:block;

          width: 100px;

          height: 30px;

          border: 1px solid black;

          在瀏覽器中的樣式:

          二、塊級標簽轉換為行級標簽

          轉化為行級標簽,共同占一行,不能設置寬高

          代碼:<h3>我是塊級標簽</h3>

          <h3>我是塊級標簽</h3>

          <h3>我是塊級標簽</h3>

          CSS:display: inline;

          width: 200px;

          height: 100px;

          border: 1px solid red;

          在瀏覽器中的樣式:

          三、轉化為行內塊級標簽

          能共占一行,而且可以設置各自的寬高

          1.行級元素轉化為行內塊級元素

          代碼:<a class="a1" href="">我是a標簽</a>

          <a class="a2" href="">我是a標簽</a>

          CSS: a{ display:inline-block; border: 1px solid black; }

          .a1{width: 100px; height: 30px; }

          .a2{ width: 50px; height: 50px; }

          在瀏覽器中的樣式:

          2.塊級標簽轉化為行內塊級標簽

          代碼:<h3 class="h3_1">我是塊級標簽</h3>

          <h3 class="h3_2">我是塊級標簽</h3>

          CSS:h3{display: inline-block;border: 1px solid red;}

          .h3_1{width: 100px;height: 100px;}

          .h3_2{width: 200px;height: 50px;}

          在瀏覽器中的樣式:

          四、display的另一個屬性,可以將元素隱藏

          display:none;

          如果想了解更多塊級標簽和行內標簽的屬性,請關注,參看上一篇文章,有寫的不對或不全面的地方,請大家多多指出。



          排提示:本期內容所用軟件為“Adobe Acrobat Pro DC 2019”

          寫在前面

          再看到喜歡的網頁時,我們可能會想要收藏,也可能使用OneNote或者印象筆記轉存這些網頁。

          而在碰到Acrobat之后,我們又多了另外一個選擇。

          將網頁直接轉存為PDF。

          Acrobat將網頁轉存為PDF有兩種方法。

          下面我們來逐一介紹。

          方法一:根據網頁地址創建PDF

          功能位置:工具 >> 創建PDF >> 網頁


          點擊“創建PDF”工具,切換頁面后,點擊左側的“網頁”選項。


          根據網頁創建PDF

          Acrobat提示我們輸入一個URL地址,將某個網頁鏈接復制到這里。

          可以勾選“捕捉多層”,軟件會展開更多選項。

          • “獲取N層”和“獲取整個網站”只能二選一。因為某個網站會包含多個超鏈接,前者可限制轉換的超鏈接數量,后者會獲取全部網站的超鏈接。(毫無疑問,網頁在轉換PDF時,后者會花費更多的時間)
          • 勾選“停留在同一路徑”的話,軟件僅轉換“隸屬于所填URL的網頁”;
          • 勾選“停留在同一服務器”的話,軟件僅轉換“同一服務器上的網頁”;
          • “高級設置”可以對轉換后的PDF,進行頁面大小,縮放等等參數的設置,不再贅述。

          轉換網頁參數

          參數設置完畢,點擊“創建”即可。

          等待數秒,Acrobat會自動打開轉換成功的PDF。

          軟件在識別網頁CSS樣式時,會存在一定的缺陷,但網頁主體內容可以被完美轉換。

          轉換效果

          方法二:使用瀏覽器插件轉換PDF

          安裝Acrobat DC時,會自動為IE、Google Chrome 和Firefox這三款瀏覽器添加“Adoba Arcobat”這款插件。(限Windows系統)


          下面以Firefox瀏覽器為例,利用插件將某個網頁轉存為PDF。

          首先在右上角的選項菜單中找到“附件組件”。


          附件組件

          確保“Adoba Arcobat”插件為啟用狀態。


          啟用Adobe Acrobat

          這時在工具欄就可以看到插件圖標了。


          通過瀏覽器隨便訪問一個網站,在右鍵菜單中就會發現“Adobe Acrobat” >> “將網頁轉換為Adobe PDF”選項。


          點擊后,只需要選擇一個存儲路徑,等待數秒轉換即可完成。

          不需要人為再次介入,要比第一種方法更加高效。


          這種方式有點類似于“網頁內容轉存至云筆記”。

          一冊君在測試知乎的網頁時,有的內容可以轉存成功,而有的不可以。

          希望大家留意到這一點。

          總結

          今天,我們介紹了使用“Acrobat”轉存網頁為PDF文件的方法。

          • 通過“工具 >> 創建PDF >> 網頁”,在軟件內部通過網頁鏈接直接轉存;
          • 安裝“Acrobat”后,IE,Chrome,Firefox三款瀏覽器會安裝“Acrobat插件”,插件提供了“將網頁轉換為Adobe PDF”功能。此方式更加簡單直觀,但支持的瀏覽器有限;

          以上。

          如果你喜歡“一冊筆記”,請記得分享,點贊和關注。

          未完待續。。。


          主站蜘蛛池模板: 无码aⅴ精品一区二区三区浪潮| 亚洲综合一区二区三区四区五区| 亚洲国产精品第一区二区| 精品少妇一区二区三区视频| 韩国一区二区三区视频| 国产精品一区二区久久国产| 精品国产一区二区三区2021| 国产精品丝袜一区二区三区| 日本丰满少妇一区二区三区| 精品免费国产一区二区三区| 亚洲一区二区成人| 亚洲男人的天堂一区二区| 日韩十八禁一区二区久久| 无码人妻aⅴ一区二区三区有奶水 人妻夜夜爽天天爽一区 | 久久一区二区明星换脸| 日本一区二区三区免费高清| 无码人妻精品一区二区三区不卡| 无码日韩人妻AV一区二区三区| 亚洲国产一区在线观看| 亚洲男人的天堂一区二区| 在线精品一区二区三区| 高清国产AV一区二区三区| 日韩精品一区二区三区视频| 99国产精品欧美一区二区三区| 久久久精品人妻一区二区三区| 国精产品一区一区三区免费视频| 一区二区三区内射美女毛片| 日韩一区二区免费视频| 鲁大师成人一区二区三区| 国产日韩AV免费无码一区二区| 无码一区二区三区老色鬼| 久久久精品日本一区二区三区| 日本一区中文字幕日本一二三区视频| 国产一区二区三区乱码| 国产天堂在线一区二区三区 | 国产视频一区二区在线播放| 秋霞电影网一区二区三区| 亚洲国产成人一区二区三区| 国产视频一区在线观看| 国产一区二区视频在线播放| 中文字幕亚洲一区|