vue 項目常用加載器及配置詳解
本文介紹了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>標(biāo)簽:
<style lang="scss"></style>
2.安裝axios:
axios用于數(shù)據(jù)請求,在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":"進(jìn)行中", }], } })
3.3. 在需要數(shù)據(jù)的組件中引入:
import datas from '../mock' // 根據(jù)自己實(shí)際目錄引入 methods: { request() { this.$http({ method: 'get', url: 'http://platform.breadoffer.com/api/oversea', params: { courseMaxCount: 2, //設(shè)置課程返回的數(shù)據(jù)為2條 teacherMaxCount: 10, //設(shè)置導(dǎo)師返回的數(shù)據(jù)為10條 } }).then(response => { console.log(response) }).catch(error => { console.log(error) }) }, }
4.安裝 lib-flexible: --實(shí)現(xiàn)移動端自適應(yīng)
4.1 安裝:
npm install lib-flexible --save
在實(shí)際開發(fā)過程中,使用flexible插件時會自動把px轉(zhuǎn)換成rem單位,在vue項目中我們使用px2rem這個工具進(jìn)行轉(zhuǎn)換,所以需要安裝px2rem加載器:
npm install px2rem-loader
4.2 在main.js中引入:
import 'lib-flexible'
4.3 配置px2rem-loader: (在build/untils.js)
remUnit 的意思是1rem=多少像素, 結(jié)合lib-flexible,我們將px2remLoader的option.remUnit 設(shè)置成設(shè)計稿寬度的1/10,假設(shè)我們的設(shè)計稿寬度是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等,那么如何將其設(shè)為全局狀態(tài),以避免在每個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)
在注釋上面添加如下函數(shù):
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') }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue watch監(jiān)聽變量值的實(shí)時變動示例詳解
這篇文章主要介紹了vue 監(jiān)聽變量值的實(shí)時變動 watch,使用字符串形式的偵聽器函數(shù),還有一種是使用函數(shù)形式的偵聽器函數(shù),本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08Vue中JSON文件神奇應(yīng)用fetch、axios異步加載與模塊導(dǎo)入全指南詳細(xì)教程
在Vue中使用JSON文件有多種方式,包括使用fetch方法加載JSON文件、使用axios庫加載JSON文件,以及將JSON文件導(dǎo)入為模塊,這篇文章主要介紹了Vue中JSON文件神奇應(yīng)用fetch、axios異步加載與模塊導(dǎo)入全指南詳細(xì)教程,需要的朋友可以參考下2024-01-01