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

vue.js移動(dòng)端app實(shí)戰(zhàn)1:初始配置詳解

 更新時(shí)間:2017年07月24日 08:29:35   作者:Runlin  
這篇文章主要介紹了vue.js移動(dòng)端app實(shí)戰(zhàn)1:初始配置詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本系列將會(huì)用vue.js2制作一個(gè)移動(dòng)端的webapp單頁(yè)面,頁(yè)面不多,大概在7,8個(gè)左右,不過(guò)麻雀雖小,五臟俱全,常用的效果如輪播圖,下拉刷新,上拉加載,圖片懶加載都會(huì)用到。css方面也會(huì)有一些描述,像不同分辨率的適配,flex布局以及scss來(lái)編寫mixin來(lái)處理2x,3x圖等。

初始工作:

通過(guò)vue-cli安裝webpack模板后,會(huì)自動(dòng)生成一大堆文件,通常我們只關(guān)心src/目錄下的東西。
 個(gè)人習(xí)慣在src下新建一個(gè)base目錄,用來(lái)存放通用的css及js,比如樣式重置css,一切js工具函數(shù)。

下載好文件后,npm run dev

啟動(dòng)服務(wù)你就會(huì)看到熟悉的hello vue。由于我們做的是移動(dòng)端的頁(yè)面,所以把chrome切換到手機(jī)模式(打開(kāi)開(kāi)發(fā)工具,ctrl+shift+m或者點(diǎn)左上角那個(gè)手機(jī))

對(duì)于移動(dòng)端如何適配不同的手機(jī)屏幕,估計(jì)每個(gè)人都有自己的做法,我用的是淘寶的flexible.js,根據(jù)不同類型來(lái)縮放以及調(diào)整html字體的大小,用rem來(lái)布局。使用的方法也很簡(jiǎn)單,只需要引入Js文件就可以了,github地址。

這里簡(jiǎn)單介紹一下如何計(jì)算rem:

假如設(shè)計(jì)稿為640,有一個(gè)div寬200px,則css應(yīng)該為width:(200/640)*10=3.125rem

假如設(shè)計(jì)稿為750,有一個(gè)div寬200px,則css應(yīng)該為width:(200/750)*10=2.666rem

可以發(fā)現(xiàn)如果每次量好一個(gè)DIV寬后都要用一個(gè)計(jì)算器算一遍,那這速度也太慢了。

假如你用的是scss,那么可以編寫一個(gè)函數(shù)來(lái)處理(函數(shù)下面的75px來(lái)自設(shè)計(jì)稿大小,假如設(shè)計(jì)稿為750,則為75;)

@function torem($px) {
 @return $px / 75px * 1rem;
}

假如你用的sublime編輯器,可以到https://github.com/flashlizi/cssrem 下載一個(gè)插件,寫起來(lái)更方便;

字體的處理:

字體方面我們?nèi)匀挥胮x來(lái)寫,不過(guò)需要針對(duì)不同的縮放比例寫不用的大小,比如安卓下,字體大小為14px,那么iphone6下大小應(yīng)為28,Iphone6s應(yīng)為42px。flexible.js會(huì)根據(jù)屏幕縮放比給html添加data-dpr屬性,因此可以通過(guò)scss編寫mixin來(lái)處理字體

@mixin fz($font-size) {
 font-size: $font-size;
 [data-dpr="2"] & {
  font-size: $font-size * 2;
 }
 [data-dpr="3"] & {
  font-size: $font-size * 3;
 }
}

需要用到字體的地方,@include fz(16px);

圖片的處理:

通常為了適應(yīng)retain和非retain屏幕,我們會(huì)準(zhǔn)備不同的圖片大小,也就是2x和3x圖,我的做法是[data-dpr="3"]下使用3x圖,其他情況統(tǒng)一使用2X圖。

在為了方便,編寫一個(gè)mixin來(lái)處理:(假設(shè)放在2x文件夾和3x文件夾下)

@mixin dpr-img($url,$name,$type:".jpg"){
 background-image: url($url+"2x/"+ $name+"@2x"+$type);
 [data-dpr="3"] &{
  background-image: url($url+"3x/"+ $name+"@3x"+$type);
 }
}

第一個(gè)參數(shù)為2x,3x文件夾所在路徑,第二個(gè)參數(shù)為文件名,第三個(gè)參數(shù)為文件類型,默認(rèn)為.jpg結(jié)尾。

寫CSS時(shí)有些代碼塊可能會(huì)經(jīng)常用到,因此也可以寫成mixin,比如單行文本溢出和多行文本溢出

@mixin t-overflow($line:1) {
 @if $line==1 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
 }
 @else {
  display: -webkit-box;
  -webkit-line-clamp: $line;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
 }
}

比如左右垂直居中

@mixin table-center {
 display: table-cell;
 vertical-align: middle;
 text-align: center;
}

@mixin flex-center {
 display: flex;
 justify-content: center;
 align-items: center;
}

字體圖標(biāo)的處理:

頁(yè)面通常都會(huì)有很多小圖標(biāo),為了減少請(qǐng)求以前可能會(huì)用雪碧圖來(lái)合并,不過(guò)我現(xiàn)在基本不用了,用字體圖標(biāo)來(lái)代替。我用的是阿里的在線字體圖標(biāo),上傳svg到阿里字體庫(kù)或者直接使用阿里的圖標(biāo),選中圖標(biāo)后添加到項(xiàng)目,生成地址后,import到項(xiàng)目中就可已使用了。

在App.vue中:

@import url('//at.alicdn.com/t/font_nfzwlroyg2vuz0k9.css');

編寫main組件:

頁(yè)面上底部有4個(gè)tab,點(diǎn)擊時(shí)會(huì)切換對(duì)應(yīng)的組件,所以Main組件的結(jié)構(gòu)是這樣的

<template>
 <div>
  <router-view></router-view>  
  <foot-nav></foot-nav>
 </div>
</template>

foot-nav底部導(dǎo)航的布局如下:

<template>
 <div class="foot-nav-containner">
  <ul class="bottom-nav">
   <router-link tag="li" to='/index' class="bottom-nav__li iconfont icon-shouye bottom-nav__li--home"></router-link>
   <router-link tag="li" to='/search' class="bottom-nav__li iconfont icon-ss bottom-nav__li--search"></router-link>
   <router-link tag="li" to='/car' class="bottom-nav__li iconfont icon-shoppingcart bottom-nav__li--car"></router-link>
   <router-link tag="li" to='/vip' class="bottom-nav__li iconfont icon-gerenzhongxinxia bottom-nav__li--vip"></router-link>
  </ul>
  </div>
</template>

點(diǎn)擊底部每個(gè)導(dǎo)航,導(dǎo)航上面的組件都會(huì)相應(yīng)的替換。不過(guò)要注意點(diǎn)擊購(gòu)物車時(shí),購(gòu)物車頁(yè)面底部需要有去結(jié)算按鈕,所以購(gòu)物車頁(yè)面是沒(méi)有導(dǎo)航的,也就是說(shuō)購(gòu)物車的路由配置時(shí)不會(huì)放在mian路由的children下面。

編寫路由:

 

 {
  path:'/',
  redirect:"/home"
 }, 
 {
  path:'/home',
  component:Main,
  children:[
   {
    path:'/',
    redirect:"/index"
   },
   {
    path:'/index',
    component:Index
   },
   {
    path:'/search',
    component:Search
   },   
   {
    path:'/vip',
    component:Vip
   }
  ]
 },
 {
  path:'/car',
  component:Car
 }

我們把home路由設(shè)置為默認(rèn)路由,當(dāng)路由為空時(shí),就會(huì)重定向到home路由,home路由下又把index路由設(shè)置為默認(rèn)路由。我們把car設(shè)為單獨(dú)的路由而不是home下,因此點(diǎn)擊導(dǎo)航的購(gòu)物車時(shí)就會(huì)從home路由切換到car路由,而由于底部的路由是放置在home路由下,所以到了購(gòu)物車頁(yè)面導(dǎo)航也就不存在了,這樣基本的配置就差不多完成了。

本節(jié)先把基本的結(jié)構(gòu)搭建起來(lái),后續(xù)才開(kāi)始進(jìn)入每個(gè)頁(yè)面內(nèi)容的編寫。

目前已經(jīng)寫好幾個(gè)頁(yè)面,項(xiàng)目已上傳到github,地址https://github.com/linrunzheng/vueApp

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

相關(guān)文章

  • Vue項(xiàng)目添加前綴,ngnix發(fā)布相關(guān)修改問(wèn)題

    Vue項(xiàng)目添加前綴,ngnix發(fā)布相關(guān)修改問(wèn)題

    這篇文章主要介紹了Vue項(xiàng)目添加前綴,ngnix發(fā)布相關(guān)修改問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 詳解利用eventemitter2實(shí)現(xiàn)Vue組件通信

    詳解利用eventemitter2實(shí)現(xiàn)Vue組件通信

    這篇文章主要介紹了詳解利用eventemitter2實(shí)現(xiàn)Vue組件通信,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Vue指令之 v-cloak、v-text、v-html實(shí)例詳解

    Vue指令之 v-cloak、v-text、v-html實(shí)例詳解

    當(dāng)用戶頻繁刷新頁(yè)面或網(wǎng)速慢時(shí),頁(yè)面未完成 Vue.js 的加載時(shí),導(dǎo)致 Vue 來(lái)不及渲染,這就會(huì)導(dǎo)致在瀏覽器中直接暴露插值(表達(dá)式),這篇文章主要介紹了Vue指令 v-cloak、v-text、v-html,需要的朋友可以參考下
    2019-08-08
  • vue?vue-touch移動(dòng)端手勢(shì)詳解

    vue?vue-touch移動(dòng)端手勢(shì)詳解

    這篇文章主要介紹了vue?vue-touch移動(dòng)端手勢(shì)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue3 reactive定義的引用類型直接賦值導(dǎo)致數(shù)據(jù)失去響應(yīng)式問(wèn)題

    vue3 reactive定義的引用類型直接賦值導(dǎo)致數(shù)據(jù)失去響應(yīng)式問(wèn)題

    這篇文章主要介紹了vue3 reactive定義的引用類型直接賦值導(dǎo)致數(shù)據(jù)失去響應(yīng)式問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue3中Suspense異步加載組件的問(wèn)題

    Vue3中Suspense異步加載組件的問(wèn)題

    在我們?nèi)粘i_(kāi)發(fā)中,有些組件里面加載非常慢,導(dǎo)致我們路由跳轉(zhuǎn)的時(shí)候回出現(xiàn)卡頓情況,這篇文章主要介紹了Vue3:?Suspense異步加載組件,需要的朋友可以參考下
    2023-12-12
  • vueRouter--matcher之動(dòng)態(tài)增減路由方式

    vueRouter--matcher之動(dòng)態(tài)增減路由方式

    這篇文章主要介紹了vueRouter--matcher之動(dòng)態(tài)增減路由方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue之監(jiān)聽(tīng)方法案例詳解

    Vue之監(jiān)聽(tīng)方法案例詳解

    這篇文章主要介紹了Vue之監(jiān)聽(tīng)方法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • vue將數(shù)字轉(zhuǎn)為中文大寫金額方式

    vue將數(shù)字轉(zhuǎn)為中文大寫金額方式

    這篇文章主要介紹了vue將數(shù)字轉(zhuǎn)為中文大寫金額方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue 基礎(chǔ)語(yǔ)法之計(jì)算屬性(computed)、偵聽(tīng)器(watch)、過(guò)濾器(filters)詳解

    Vue 基礎(chǔ)語(yǔ)法之計(jì)算屬性(computed)、偵聽(tīng)器(watch)、過(guò)濾器(filters)詳解

    計(jì)算屬性就是 Vue 實(shí)例選項(xiàng)中的 computed,computed 的值是一個(gè)對(duì)象類型,對(duì)象中的屬性值為函數(shù),而且這個(gè)函數(shù)沒(méi)辦法接收參數(shù),這篇文章主要介紹了Vue 基礎(chǔ)語(yǔ)法之計(jì)算屬性(computed)、偵聽(tīng)器(watch)、過(guò)濾器(filters)詳解,需要的朋友可以參考下
    2022-11-11

最新評(píng)論

南部县| 邵阳市| 鄂尔多斯市| 章丘市| 桑日县| 瑞昌市| 东安县| 阜宁县| 道真| 紫阳县| 鹤山市| 鹤峰县| 恩施市| 吕梁市| 马公市| 论坛| 淳安县| 海丰县| 哈巴河县| 吴桥县| 南澳县| 绵竹市| 雷波县| 兴安盟| 礼泉县| 房产| 洛宁县| 庄浪县| 泊头市| 白水县| 铜鼓县| 黄梅县| 台南市| 黔东| 陆丰市| 咸丰县| 德阳市| 周宁县| 浦县| 平泉县| 建宁县|