vuejs移动端项目总结

2018-11-15  本文已影响82人  团猫咪爱吃玉米

下面说一些我在写移动端项目时总结的经验:

import fastClick from 'fastclick'
fastClick.attach(document.body)
import 'babel-polyfill'
import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'
Vue.use(VueAwesomeSwiper)

具体使用场景需参照文档配置option选项,这里不再赘述。
下面只阐述一点就是我们在使用插件时常常需要更改样式,比如改变轮播图下面小圆点的颜色。这里我们推荐使用样式穿透
/deep/sassless的样式穿透
>>>stylus的样式穿透

 .wrapper >>> .swiper-pagination-bullet-active
    background: #fff
.wrapper  /deep/ .swiper-pagination-bullet-active {
    background: #fff
 }
@import './../../../assets/css/mixin.scss';
//简化成功
@import '~@/assets/css/mixin.scss';
@import '~styles/varibles.scss'
@mixin omit {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

然后通过@include来调用具有相同名称的mixin模块

div {
 @include omit;
}
  1. 可以进行提前占位,避免资源加载时候的闪烁
  2. 还可以让高度自适应
    在移动端或者在响应式开发情况下,我们可以利用这个特性来实现图片等比例缩放自适应。
    解决核心思想为:提供一个容器,设置容器的高度为0,再设置padding-bottom为56.25%(需要自适应的元素高度除以宽度*100%)(因为padding的百分比是按照容器宽度计算的,所以由padding来撑开容器高度,而不是height,保证了容器的宽高比例)
<div class="wrapper">
  <img class="swiper-img" />
</div>

.wrapper {
    overflow: hidden
    width: 100%
    height: 0
    padding-bottom: 31.25%
} 
.swiper-img {
    width: 100%
}
scrollBehavior (to, from, savedPosition) {
    return { x: 0, y: 0 }
}
mounted () {
    this.lastCity = this.city
    this.getHomeInfo()   //ajax请求
  },
  activated () {
    if (this.lastCity !== this.city) {
      this.lastCity = this.city
      this.getHomeInfo()
    }
  }
<template>
    <!--定义外层-->
    <div class="wrapper" ref="wrapper">
        <!--定义需要滚动的内容区域-->
        <ul class="content">
            <li v-for="item in items">{{item.text}}</li>
        </ul>
    </div>
</template>
<script>
  import BScroll from 'better-scroll'
  export default {
    mounted() {
      this.$nextTick(() => {
        this.scroll = new Bscroll(this.$refs.wrapper, {})
      })
    },
   watch: {
     letter () {
       if (this.letter) {
        const element = this.$refs[this.letter][0]
        this.scroll.scrollToElement(element)
      }
    }
   },
  }
</script>

样式这里需要注意的是,要滚动的这一部分给了固定的高度,且超出部分overflow:hidden;

.wrapper {
    overflow: hidden
    position: absolute
    top: 1.58rem
    left: 0
    right: 0
    bottom: 0
}

另外附上better-scroll原作者的文章:https://www.imooc.com/article/18232

"scripts": {
    "dev": "webpack-dev-server --host 0.0.0.0 --inline --progress --config build/webpack.dev.conf.js",
  },

这样的话,在命令行运行ipconfig,手机和电脑连接同一局域网,用手机访问电脑的ip地址就可以用真机打开啦

上一篇 下一篇

猜你喜欢

热点阅读