日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

sass学习记录及vue实践

發布時間:2025/1/21 vue 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sass学习记录及vue实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一章:Vue中實踐樣式文件復用(模塊化導入)

說明: 通常項目中復用的樣式值(變量)和樣式段(mixin)會統一放在一個.scss文件中(common.scss)供項目使用,主要來學習common.scss文件的使用

  • 組件中使用
    在組件的scss文件中直接導入,屬于誰用誰引:
  • @import '../assets/style/common.scss'
  • 全局中使用
    秉著懶的原則,對于這些高度復用的東西,能一次搞定自然是最好的:
  • // 在main.js中引入全局樣式 import './assets/style/common.scss'

    然后在組件中去引用,成功的報錯了!!!(這種注冊方式適用于普通樣式)

    解決方案:
    不用再main.js中引入了 ,直接利用vue.config.js來配置
    報錯解決方案一:創建 vue.config.js 文件,寫入如下代碼:

    module.exports = {css: {loaderOptions: {// 給 sass-loader 傳遞選項sass: {// @/ 是 src/ 的別名prependData: `@import '~@/assets/style/common.scss';` //新版本}},} }

    采用第1種方法的時候要注意因為它會在所有 sass 文件里添加相同的代碼。如果添加的不是變量, mixin 之類的,而是類似下面的代碼的話。假設你有20個scss文件的話,下面這段代碼就會出現在你最終打包出來的文件20次。
    參考:https://blog.csdn.net/weixin_41615439/article/details/104216159

    大概的意思是項目自己幫你在每個scss文件中添加你的common.scss代碼,建議你只寫一些共用的變量和mixin,不要包含普通的樣式,不然會在編譯后的文件中重復出現。

    只有變量的

    既有變量,還有普通樣式的

    可以看見div重復了兩次,這種普通樣式要全局通用公有,應該單獨寫在一個 default.scss 文件中,然后全局引入,下圖的 div 樣式就不會重復了

    // main.js 中全局注冊默認公用樣式 import './assets/style/default.scss'


    結論:定義變量和mixin的 scss 單獨放在一個文件夾,在vue.config.js中設置后,可全局使用變量和mixin

    報錯解決方案二:

    利用 sass-resources-loader 插件,

    npm i sass-resources-loader -D

    創建 vue.config.js 文件,寫入如下代碼:

    module.exports = {chainWebpack: config => {const oneOfsMap = config.module.rule('scss').oneOfs.storeoneOfsMap.forEach(item => {item.use('sass-resources-loader').loader('sass-resources-loader').options({// Provide path to the file with resourcesresources: 'src/assets/style/common.scss',//文件的路徑// Or array of paths// resources: ['./path/to/vars.scss', './path/to/mixins.scss']}).end()})} }

    與第一種不同,它是將文件中變量和mixin注冊到了全局(注意依舊不要寫普通樣式)

    第二章:變量定義和使用

    /* $變量名:值 */ $themeColor: red;/* 使用 */ div{background-color: $themeColor; }

    第三章:@mixin混入和@include引入混入

    樣式代碼段的復用,將復用的代碼段定義后引入使用:

    @mixin name { property: value; property: value; … }

    /* 定義混入 */ @mixin my-flex-center{display: flex;justify-content: center;align-items: center; }/* 使用混入 */ div{@include my-flex-center;background-color: red; }/* 編譯后 */ div{display: flex;justify-content: center;align-items: center;background-color: red; }

    混入可以接收參數:

    @mixin bordered($width, $color){border:$width solid $color; }div{@include bordered(1px, red); }/* 編譯后 */ div{border: 1px solid red; }

    指定默認值:可以都指定,也可以指定其中的幾個

    @mixin bordered($width: 1px, $color: red){border:$width solid $color; }div{@include bordered(,red); /* 錯誤的,如果你只想傳某些個參數應該指定它,其他的會默認 */@include bordered($color: green) /* 此時$width會取默認值1px*/ }

    可變參數(類似arguments)

    有時,不能確定一個混入(mixin)或者一個函數(function)使用多少個參數,這時我們就可以使用 … 來設置可變參數。例如,用于創建盒子陰影(box-shadow)的一個混入(mixin)可以采取任何數量的 box-shadow 作為參數。

    @mixin box-shadow($shadows...) {-moz-box-shadow: $shadows;-webkit-box-shadow: $shadows;box-shadow: $shadows; } .shadows {@include box-shadow(0px 4px 5px #666, 2px 6px 10px #999); }

    繼承 @extend

    @extend 指令告訴 Sass 一個選擇器的樣式從另一選擇器繼承。如果一個樣式與另外一個樣式幾乎相同,只有少量的區別,則使用 @extend 就顯得很有用。

    .item{position: absolute; } .item1{@extend .item;color: red; } .item2{@extend .item;color: green; }/* 編譯后 */ .item, .item1, .item2 {position: absolute; } .item1{color: red; } .item2{color: green; }

    好像用繼承沒有省太多的代碼 如下少寫一些重復class
    使用 @extend 后,我們在 HTML 按鈕標簽中就不需要指定多個類 class=“item item1” ,只需要設置 class=“item1” 類就好了。

    Mixins允許我們在項目中復用樣式片段,可以傳遞參數這個特性使得它們非常靈活,強大。同樣,我們也可以使用@extend命令讓一個選擇器繼承其它選擇器去復用樣式片段。有的時候Mixin和extend好像做了同樣的事情,那我們應該選擇哪一個呢?
    @mixin主要的優勢就是它能夠接受參數。如果想傳遞參數,你會很自然地選擇@mixin而不是@extend。
    如果沒有任何參數,使用@extend來創造DRY應該是個不錯的選擇。不過要注意的是,使用gzip壓縮過的文件可能會破壞代碼中的DRY。
    在大作數情況下@mixin會比@extend更好,但是它們倆都有自己的一席之地。當樣式和選擇器之間的關系在某些方面比較緊密的時候,使用@extend。除此之外,你可以使用@mixin在任何地方。

    官網原話 意思就是告訴你盡可能(直接使用混入不會有錯的)的使用@mixin

    總結

    以上是生活随笔為你收集整理的sass学习记录及vue实践的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩 欧美 自拍 | 国产精品一区二区三区久久 | 国产精品二区三区 | 日韩精品视频中文字幕 | 日日麻批免费视频播放 | 福利在线小视频 | 福利国产片 | 精品久久久一区二区 | 亚洲欧美在线观看视频 | 玖玖视频| 色噜噜亚洲 | 最污网站在线观看 | 交做爰xxxⅹ性爽 | 日韩精品成人无码专区免费 | www视频在线观看免费 | 国产亚洲成av人在线观看导航 | 操啊操| www.色悠悠| 国产精品怡红院 | 香蕉污视频 | 少妇一级淫片日本 | 国产精品理论片在线观看 | 99热99精品 | 两性免费视频 | 91午夜免费视频 | 国产精品变态另类虐交 | 五十路中出 | 在线观看自拍 | 免费一级黄 | 97看片网| 玖玖玖精品| 午夜激情啪啪 | 国产稀缺精品盗摄盗拍 | 18无码粉嫩小泬无套在线观看 | 不卡av片| 日韩不卡| 国产毛片不卡 | 37p粉嫩大胆色噜噜噜 | 亚洲国产影院 | 99久久久国产精品无码免费 | 无码一区二区三区在线 | 欧美做爰全过程免费看 | 在线免费福利视频 | 精品字幕| 欧美色图视频在线 | 亚洲第一福利网站 | 韩国三级视频在线 | 国产高潮国产高潮久久久91 | a视频| 成人免费毛片xxx | 97视频一区二区三区 | 国产二区在线播放 | 久久久久久久久国产精品一区 | 欧美性生活一级 | 欧美成人精品一区二区男人小说 | 欧美干| 精品人妻码一区二区三区红楼视频 | 久久久久久一区二区三区 | 日韩不卡一区二区三区 | 亚洲一区二区三区影院 | 亚洲黄网在线观看 | 午夜久久久久久久久久久 | 欧美aⅴ在线观看 | 免费看国产视频 | 成人特级毛片69免费观看 | 日批视频在线 | 精品欧美一区二区三区 | 国产熟女高潮视频 | 中文字幕在线看高清电影 | 男女免费看 | 男生女生羞羞网站 | 亚洲尻逼 | 日韩一区二区三区久久 | 天天操天天透 | 君岛美绪在线 | 欧美r级在线观看 | 动漫av在线免费观看 | 久久夜色av| 亚洲AV无码精品一区二区三区 | 欧美aa在线 | 特高潮videossexhd | 久久综合一区二区三区 | 亚洲最大在线观看 | 热热色原网址 | 99国产精品久久久久久久久久久 | 亚洲va久久久噜噜噜久久天堂 | 成人精品一区二区三区电影黑人 | 日韩大片在线观看 | 在线观看欧美亚洲 | 久久久久久爱 | 奇米色在线 | 在线视频一区二区 | 国产精品乱轮 | 精品人妻无码一区二区 | 99久久黄色| 色婷婷一区| 国产欧美精品一区二区在线播放 | 欧美一二三视频 | 亚洲三级国产 |