最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談關(guān)于vue中scss公用的解決方案

 更新時間:2019年12月02日 15:15:47   作者:淋著  
這篇文章主要介紹了淺談關(guān)于vue中scss公用的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

簡述

最近由于項(xiàng)目要求查閱了很多關(guān)于scss公用的文章,以下只是對那些文章進(jìn)行簡單的總結(jié)

解決方法

a.當(dāng)我們要使用scss文件的共用時,首先我們就要想到如何應(yīng)當(dāng)如何編輯scss文件,比如降低scss文件的變量與混入的耦合,我們可以將scss文件中的變量和混入分離開來使用單獨(dú)的文件存儲,此外還可以編寫一些默認(rèn)樣式的scss文件 。

variable.scss:存儲scss變量的文件

@charset 'utf-8';
$bg:skyblue;
$w:100px;
$h:100px;
$tsize:50px;
$w2:200px;
$h2:200px;

mixin.scss:存儲scss混入的文件

@charset 'utf-8';
@mixin wh($w,$h) {
 width: $w;
 height: $h;
 border: 1px solid red;
}

base.scss:存儲默認(rèn)樣式的scss文件

@charset 'utf-8';
.test{
 border: 5px solid pink;
 height: 100px;
 width: 100px;
}

​ b.現(xiàn)在最關(guān)鍵的是如何讓vue組件也能用使用我們定義的公用的scss文件 ,當(dāng)然我們也可以在每個組件中使用import語句導(dǎo)入相應(yīng)的scss文件,但是這樣會導(dǎo)致代碼臃腫,難以維護(hù)。所以我們可以借助相關(guān)工具來解決這個問題。

a.方法1

如果使用的是vue-cli的版本是比較低的版本,我們可以通過使用 sass-resources-loader這個插件,修改vue-cli的目錄下build/utils.js 。從而實(shí)現(xiàn)scss文件的共享。

步驟1:首先安裝sass-resources-loader這個插件。

npm i sass-resources-loader --save-dev

步驟2:修改build文件夾下的utils.js文件,找到return選項(xiàng),修改它的scss屬性進(jìn)行入下配置,其他不用改變。

return {
  css: generateLoaders(),
  postcss: generateLoaders(),
  less: generateLoaders('less'),
  sass: generateLoaders('sass', { indentedSyntax: true }),
  //修改這個scss屬性
  scss: generateLoaders('sass').concat({
   loader:'sass-resources-loader', 
     options:{ 
     resources:[
      path.resolve(__dirname,'../src/assets/variable.scss'),
      path.resolve(__dirname,'../src/assets/mixin.scss'),
      path.resolve(__dirname,'../src/assets/base.scss') 
     ]
     }
  }),
  stylus: generateLoaders('stylus'),
  styl: generateLoaders('stylus')
 }

步驟3:測試階段,新建一個Test.vue組件,進(jìn)行入下配置

<template>
 <div>
  <!-- test類的默認(rèn)樣式 -->
  <div class="test">
   test
  </div>
  <div class="box2">
   ssss
  </div>
 </div>
</template>
<style lang="scss">
 .test{
  //訪問公共的scss變量 
  font-size:$tsize;
  background: $bg;
 }
 .box2{
  //訪問公共的scss混入 
  @include wh($w2,$h2) 
 }
</style>

b.方法2

如果使用的vue-cli的版本是高版本的,那么可以直接修改vue.config.js這個文件的css.loaderOptions選項(xiàng),就可以讓每個組件使用公用的scss文件了。

步驟1:同樣首先安裝sass-resources-loader這個插件。

npm i sass-resources-loader --save-dev

步驟2:在項(xiàng)目主目錄下新建一個vue.config.js配置文件。大概的配置參考這篇文章

const path=require('path')
 module.exports={
  publicPath: process.env.NODE_ENV === 'production' ? '/public/' : './',
  assetsDir:'assets',
  indexPath:'myIndex.html',
  filenameHashing:false,
  productionSourceMap: false,
  css: {
   loaderOptions: {
     sass: {
       //依次導(dǎo)入的公用的scss變量,公用的scss混入,共用的默認(rèn)樣式
       prependData: `
         @import "./src/assets/css/variable.scss";
        @import "./src/assets/css/mixin.scss";  
         @import "./src/assets/css/base.scss";
       `
     }
   }
  }
 }

步驟3:測試階段,和方法一的步驟3一樣。

c.方法3

如果使用的vue-cli的版本是高版本的,那么可以直接修改vue.config.js這個文件的chainWebpack這個屬性來實(shí)現(xiàn)多個scss文件的公用。

步驟1:同樣首先安裝sass-resources-loader這個插件。

npm i sass-resources-loader --save-dev

步驟2:在項(xiàng)目主目錄下新建一個vue.config.js配置文件。大概的配置參考這篇文章

const path=require('path')
module.exports={
 publicPath: process.env.NODE_ENV === 'production' ? '/public/' : './',
 assetsDir:'assets',
 indexPath:'myIndex.html',
 filenameHashing:false,
 productionSourceMap: false,
 chainWebpack:config=>{
  const types=['vue']
  types.forEach(type=>{
   config.module.rule('scss').oneOf(type).use('style-resource')
   .loader('style-resources-loader')
   .options({
    patterns:[
     //公用的scss變量 
     path.resolve(__dirname,'./src/assets/css/variable.scss'),
     //公用的scss混入 
     path.resolve(__dirname,'./src/assets/css/mixin.scss'),
     //共用的默認(rèn)樣式 
     path.resolve(__dirname,'./src/assets/css/base.scss')
    ]
   })
  })
 }
}

步驟3:測試階段,和方法一的步驟3一樣。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue下拉列表的兩種實(shí)現(xiàn)方式比較

    vue下拉列表的兩種實(shí)現(xiàn)方式比較

    這篇文章主要介紹了vue下拉列表的兩種實(shí)現(xiàn)方式比較,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 在Vue.js應(yīng)用中實(shí)現(xiàn)分布式搜索和全文搜索

    在Vue.js應(yīng)用中實(shí)現(xiàn)分布式搜索和全文搜索

    分布式搜索和全文搜索在現(xiàn)代應(yīng)用程序中變得越來越重要,因?yàn)樗鼈兛梢詭椭脩艨焖俨檎液蜋z索大量數(shù)據(jù),Elasticsearch是一種強(qiáng)大的分布式搜索引擎,本文將介紹如何在Vue.js應(yīng)用程序中實(shí)現(xiàn)分布式搜索和全文搜索,以及如何與Elasticsearch集成,需要的朋友可以參考下
    2023-11-11
  • vue3+element-plus+vite實(shí)現(xiàn)動態(tài)路由菜單方式

    vue3+element-plus+vite實(shí)現(xiàn)動態(tài)路由菜單方式

    文章詳細(xì)介紹了如何使用Vite搭建一個Vue 3 TypeScript項(xiàng)目,并配置了路由、狀態(tài)管理、插件和環(huán)境,項(xiàng)目結(jié)構(gòu)包括路由持久化、白名單、動態(tài)路由和權(quán)限控制,此外,還模擬了一個后端返回的路由數(shù)據(jù)文件
    2025-01-01
  • Vue前端項(xiàng)目自適應(yīng)布局的簡單方法

    Vue前端項(xiàng)目自適應(yīng)布局的簡單方法

    最近項(xiàng)目開發(fā)中遇到一個需求,需要實(shí)現(xiàn)寬度自動適應(yīng),所以下面這篇文章主要給大家介紹了關(guān)于Vue前端項(xiàng)目自適應(yīng)布局的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • vue前端路由以及vue-router兩種模式實(shí)例詳解

    vue前端路由以及vue-router兩種模式實(shí)例詳解

    路由這個概念最先是后端出現(xiàn)的,下面這篇文章主要給大家介紹了關(guān)于vue前端路由以及vue-router兩種模式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • vue2源碼解析之全局API實(shí)例詳解

    vue2源碼解析之全局API實(shí)例詳解

    全局API并不在構(gòu)造器里,而是先聲明全局變量或者直接在Vue上定義一些新功能,Vue內(nèi)置了一些全局API,下面這篇文章主要給大家介紹了關(guān)于vue2源碼解析之全局API的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Vue3?Transition組件給頁面切換并加上動畫效果

    Vue3?Transition組件給頁面切換并加上動畫效果

    這篇文章主要給大家介紹了關(guān)于Vue3?Transition組件給頁面切換并加上動畫效果的相關(guān)資料,vue的過渡動畫主要是transition標(biāo)簽的使用,配合css動畫實(shí)現(xiàn)的,需要的朋友可以參考下
    2023-06-06
  • vue 函數(shù)調(diào)用加括號與不加括號的區(qū)別

    vue 函數(shù)調(diào)用加括號與不加括號的區(qū)別

    這篇文章主要介紹了vue 函數(shù)調(diào)用加括號與不加括號的區(qū)別,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-10-10
  • vue-router(this.$router)如何在新窗口打開路由跳轉(zhuǎn)頁面

    vue-router(this.$router)如何在新窗口打開路由跳轉(zhuǎn)頁面

    這篇文章主要介紹了vue-router(this.$router)如何在新窗口打開路由跳轉(zhuǎn)頁面問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Vue.Draggable使用文檔超詳細(xì)總結(jié)

    Vue.Draggable使用文檔超詳細(xì)總結(jié)

    Vue拖拽組件(Draggable)是一個允許與View-Model同步進(jìn)行拖放排序的Vue組件,下面這篇文章主要給大家介紹了關(guān)于Vue.Draggable使用文檔的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08

最新評論

梁平县| 桐城市| 佛教| 天等县| 晋江市| 南汇区| 霍林郭勒市| 永仁县| 屏南县| 玛纳斯县| 仁化县| 监利县| 垣曲县| 固阳县| 宁波市| 简阳市| 札达县| 玛沁县| 麻阳| 乌恰县| 纳雍县| 海丰县| 新田县| 新昌县| 宣化县| 剑阁县| 寻乌县| 阿拉善右旗| 穆棱市| 鄂伦春自治旗| 枝江市| 铜川市| 武宣县| 大邑县| 平泉县| 南靖县| 鹤山市| 西乌| 靖宇县| 萝北县| 上饶县|