真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在weex中愉快的使用scss的方法步驟

weex 是一個(gè)可以利用 vue 或者 Rax 編寫跨平臺(tái)手機(jī)應(yīng)用的框架。為了讓在 weex 有更好的樣式編寫體驗(yàn),遂有了以下的方案。

在鹽田等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需求定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營(yíng)銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,鹽田網(wǎng)站建設(shè)費(fèi)用合理。

1.初始化一個(gè) weex 工程

npm install weex-toolkit -g
weex create weex-test
cd weex-test
npm run start

這時(shí)候就可以在瀏覽器看到界面了

2.接著為了可以在vue里面寫scss, 我們需要安裝兩個(gè)東西, sass-loader、node-sass

npm install -D sass-loader@7.3.1 node-sass

在這里要注意一點(diǎn)sass-loader要安裝 7 版本的,不然會(huì)報(bào)錯(cuò),這是因?yàn)閟ass版本高導(dǎo)致的,接下來(lái)就可以愉快的寫scss,還要注意一點(diǎn)需要在style標(biāo)簽加上語(yǔ)言標(biāo)記scss


3.為了更好的組織項(xiàng)目結(jié)夠和樣式的統(tǒng)一,我們會(huì)把一些主題顏色、字體大小、文字顏色提取到一個(gè)scss文件,我們把它命名為variable.scss如下:

$theme-color: blue;

$font-big: 32px;
$font-nor: 28px;
$font-small: 24px;

我們把它放到項(xiàng)目的src/common/scss下, 需要的時(shí)候就在vue文件中引用, 比如在 index.vue 頁(yè)面引用


這樣就可以讓應(yīng)用的主體部分的樣式保持一致了。

4.在 weex 中有一些屬性不支持簡(jiǎn)寫的方式比如 border,還有一些需要寫兩三條的樣式如文字超出隱藏,這種樣式我們可以將它們定義成scss的混合宏(mixin),我們把它命名為mixins.scss

@mixin border($width, $style, $color) {
  border-width: $width;
  border-style: $style;
  border-color: $color;
}
@mixin border-top($width, $style, $color) {
  border-top-width: $width;
  border-top-style: $style;
  border-top-color: $color;
}

我們把它放到項(xiàng)目的src/common/scss下, 需要的時(shí)候就在vue文件中引用, 比如在 index.vue 頁(yè)面引用


這樣我們就可以將一些常用的css代碼寫進(jìn)混合宏了

5.在weex中由于不支持類名的權(quán)重覆蓋,只支持后面的定義的同類樣式覆蓋前面的樣式,這樣就會(huì)導(dǎo)致我們不能很好的組織 css 代碼, 又不能利用 scss 的優(yōu)勢(shì)代碼層級(jí)嵌套。為此我們引入BEM命名方法,并通過(guò)scss的混合宏讓其在寫法上支持嵌套,首先我們?cè)?src/common/scss 下創(chuàng)建 bem.scss,并寫入如下代碼:

$namespace: '';
$element-separator: '__';
$modifier-separator: '--';

@mixin b($block) {
  @if $namespace == '' {
    $B: $block !global;
  } @else {
    $B: $namespace+'-'+$block !global;
  }

  @if '#{&}' == '' {
    .#{$B} {
      @content;
    }
  } @else {
    @at-root {
      .#{$B} {
        @content;
      }
    }
  }

}

@mixin e($element) {
  $E: $element !global;
  $selector: &;

  @if str-index('#{&}', '__') {
    @at-root {
      .#{$B + $element-separator + $element} {
        @content;
      }
    }
  } @else {
    @at-root {
      #{&+$element-separator+$E} {
        @content;
      }
    }
  }

}
@mixin m($modifier) 
  $M: $modifier !global;
  @at-root {
    #{&+$modifier-separator+$M} {
      @content;
    }
  }
}

由于weex不支持層級(jí)所以我們只能用@at-root將所有類名提升到第一層。接著我們?cè)趇ndex.vue中引入這個(gè)文件:





編譯后的樣式為:

.header {
  height: 100px;
  width: 750px;
  flex-direction: row;
  align-items: center;
}
.header__back {
  flex: 1;
}
.header__back--black {
  background-color: #000000;
}
.header__back--white {
  background-color: #ffffff;
}
.header__content {
  flex: 3;
}
.header__other {
  flex: 1;
}

這樣看起來(lái)用scss的寫法代碼的結(jié)構(gòu)性和可維護(hù)性就會(huì)更好一些。

6.由于這三個(gè)文件都是需要在每一個(gè)vue文件引入的,為了偷一下懶,我們可以用sass-resources-loader 這個(gè)loader來(lái)讓每一個(gè)vue文件都注入這幾個(gè)scss文件

npm install -D sass-resources-loader

然后修改根目錄下的 configs/utils.js ,找到如下,進(jìn)行更改

 const generateLoaders = (loader, loaderOptions) => {
  let loaders = options.useVue ? [cssLoader] : []
  if (options.usePostCSS) {
   loaders.push(postcssLoader)
  }
  if (loader) {
   loaders.push({
    loader: loader + '-loader',
    options: Object.assign({}, loaderOptions, {
     sourceMap: options.sourceMap
    })
   })
  }

  //這里加入以下代碼
  if (loader === 'sass') {
   loaders.push({
    loader: 'sass-resources-loader',
    options: {
     resources: [
      path.resolve(__dirname, '../src/common/scss/variable.scss'),
      path.resolve(__dirname, '../src/common/scss/mixins.scss'),
      path.resolve(__dirname, '../src/common/scss/bem.scss')
     ]
    }
   })
  }

  if (options.useVue) {
   return ['vue-style-loader'].concat(loaders)
  }
  else {
   return loaders
  }
 }

這樣就可以在weex工程中愉快的編寫scss了

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


新聞標(biāo)題:在weex中愉快的使用scss的方法步驟
標(biāo)題URL:http://weahome.cn/article/jgiogh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部