您好,登錄后才能下訂單哦!
在最初使用webpack+vue時(shí),看到vue里面各種語(yǔ)法,包括import,export,html和css的寫作方式,我都能依葫蘆畫瓢地實(shí)現(xiàn)各種功能,但是為什么能這樣寫,一直不太理解,直到我了解了vue-loader。
vue-loader功能
如圖,webpack的功能就是將左側(cè)用戶編寫的代碼(只要有相應(yīng)的loader,可以使用任何符合自己習(xí)慣的編寫方式)轉(zhuǎn)換成右側(cè)瀏覽器能識(shí)別的js。
vue-loader就是告訴webpack如何將vue格式的文件轉(zhuǎn)換成js。
vue組件格式
.vue 文件是一個(gè)自定義的文件類型,用類 HTML 語(yǔ)法描述一個(gè) Vue 組件。每個(gè) .vue 文件包含三種類型的頂級(jí)語(yǔ)言塊 <template>, <script> 和 <style>,還允許添加可選的自定義塊:
<template> <div class="example">{{ msg }}</div> </template> <script> export default { data() { return { msg: 'Hello world!' } } } </script> <style> .example { color: red; } </style> <custom1> This could be e.g. documentation for the component. </custom1>
vue-loader 會(huì)解析文件,提取每個(gè)語(yǔ)言塊,如有必要會(huì)通過(guò)其它 loader 處理,最后將他們組裝成一個(gè) CommonJS 模塊,module.exports 出一個(gè) Vue.js 組件對(duì)象。
vue-loader 支持使用非默認(rèn)語(yǔ)言,比如 CSS 預(yù)處理器,預(yù)編譯的 HTML 模版語(yǔ)言,通過(guò)設(shè)置語(yǔ)言塊的 lang 屬性。例如,你可以像下面這樣使用 SASS 語(yǔ)法編寫樣式:
<style lang="sass"> /* write SASS! */ </style>
Src 導(dǎo)入
如果喜歡分隔你的 .vue 文件到多個(gè)文件中,你可以通過(guò) src 屬性導(dǎo)入外部文件:
<template src="./template.html"></template> <style src="./style.css"></style> <script src="./script.js"></script>
需要注意的是 src 導(dǎo)入遵循和 require() 一樣的規(guī)則,這意味著你相對(duì)路徑需要以 ./ 開(kāi)始,你還可以從 NPM 包中直接導(dǎo)入資源,例如:
<!-- import a file from the installed "todomvc-app-css" npm package --> <style src="todomvc-app-css/index.css">
在自定義塊上同樣支持 src 導(dǎo)入,例如:
<unit-test src="./unit-test.js"> </unit-test>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。