您好,登錄后才能下訂單哦!
這篇文章主要介紹了vue項目常用加載器及配置的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
具體如下:
1.安裝sass:
1.1 由于sass-loader依賴于node-sass,所以在安裝sass-loader的同時還需安裝node-sass
npm install --save-dev node-sass npm install --save-dev sass-loader
1.2 安裝完成后修改 <style>標簽:
<style lang="scss"></style>
2.安裝axios:
axios用于數據請求,在Vue1.0的時候有一個官方推薦的 ajax 插件 [vue-resource](https://github.com/pagekit/vue-resource),但是自從 Vue 更新到 2.0 之后,官方就不再更新 vue-resource,推薦使用axios。
2.1 安裝:
npm install axios --save-dev
2.2. 在main.js中引入:
import axios from 'axios' Vue.prototype.$http = axios
2.3. 在組件中使用:
this.$http({ method:'get', url:'http://breadoffer.com/api/artcile', params:{ platformCode:'pc' // 用于向后臺傳參 } }).then(response => { console.log(response) })
3.安裝mock:
3.1. 安裝:
npm install mockjs --save-dev
3.2. 使用:在src下新建mock.js文件
import Mock from 'mockjs'; export default Mock.mock('http://platform.breadoffer.com/api/oversea', { "data":{ "breadActivities|9":[{ "title":"@csentence(5,25)", "desc":"@paragraph(2)", "beiginTime":"@date", "endTime":"@date", "stateName":"進行中", }], } })
3.3. 在需要數據的組件中引入:
import datas from '../mock' // 根據自己實際目錄引入 methods: { request() { this.$http({ method: 'get', url: 'http://platform.breadoffer.com/api/oversea', params: { courseMaxCount: 2, //設置課程返回的數據為2條 teacherMaxCount: 10, //設置導師返回的數據為10條 } }).then(response => { console.log(response) }).catch(error => { console.log(error) }) }, }
4.安裝 lib-flexible: --實現移動端自適應
4.1 安裝:
npm install lib-flexible --save
在實際開發過程中,使用flexible插件時會自動把px轉換成rem單位,在vue項目中我們使用px2rem這個工具進行轉換,所以需要安裝px2rem加載器:
npm install px2rem-loader
4.2 在main.js中引入:
import 'lib-flexible'
4.3 配置px2rem-loader: (在build/untils.js)
remUnit 的意思是1rem=多少像素, 結合lib-flexible,我們將px2remLoader的option.remUnit 設置成設計稿寬度的1/10,假設我們的設計稿寬度是750,則remUnit為75,然后在cssLoader后面加一個px2remLoader即可
var px2remLoader = { loader: 'px2rem-loader', options: { remUnit: 75 } } // generate loader string to be used with extract text plugin function generateLoaders (loader, loaderOptions) { const loaders = [cssLoader,px2remLoader] if (loader) { loaders.push({ loader: loader + '-loader', options: Object.assign({}, loaderOptions, { sourceMap: options.sourceMap }) }) }
5.安裝 sass-resourses-loader
如果在項目中使用sass,或多或少會用到全局的變量,mixin/function等,那么如何將其設為全局狀態,以避免在每個vue文件中引入?
5.1 安裝 sass-resources-loader:
npm i sass-resources-loader
5.2 在main.js中引入
import 'lib-flexible'
5.3 配置px2rem-loader: (在build/untils.js)
在文件中找到這句注釋
// [https://vue-loader.vuejs.org/en/configurations/extract-css.html](https://vue-loader.vuejs.org/en/configurations/extract-css.html)
在注釋上面添加如下函數:
function resolveResouce(name) { return path.resolve(__dirname, '../src/sass/' + name); // sass文件所在目錄 } function generateSassResourceLoader() { var loaders = [ cssLoader, // 'postcss-loader', 'sass-loader', { loader: 'sass-resources-loader', options: { // it need a absolute path resources: [resolveResouce('_mixin.scss')] } } ]; if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, fallback: 'vue-style-loader' }) } else { return ['vue-style-loader'].concat(loaders) } }
并且將以下代碼
// return { // css: generateLoaders(), // postcss: generateLoaders(), // less: generateLoaders('less'), // sass: generateLoaders('sass', { indentedSyntax: true }), // scss: generateLoaders('sass'), // stylus: generateLoaders('stylus'), // styl: generateLoaders('stylus') // }
替換為:
return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateSassResourceLoader(), scss: generateSassResourceLoader(), stylus: generateLoaders('stylus'), styl: generateLoaders('stylus') }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“vue項目常用加載器及配置的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。