zoukankan      html  css  js  c++  java
  • 第二天

    封装css属性

    mixins.styl

    ellipsis()
      overflow: hidden
      white-space: nowrap
      text-overflow: ellipsis

    引入方式:

    <style lang="stylus" scoped>
     @import '~styles/mixins.styl'
     .icon-desc
            position: absolute
            left: 0
            right: 0
            bottom: 0
            height: .44rem
            line-height: .44rem
            text-align: center
            color: $darkTextColor
            ellipsis()
    </style>

    动态计算分页的数量

    场景:比如你得到一组list数据要展示在页面上,一页展示8条,超过8条要展示在下一页,滑动翻滚展示那种。可以利用计算属性来达到效果

    <script>
    export default {
      name: 'HomeIcons',
      props: {
        list: Array
      },
      data () {
        return {
          swiperOption: {
            autoplay: false
          }
        }
      },
      computed: {
        pages () {
          const pages = []
          this.list.forEach((item, index) => {
            const page = Math.floor(index / 8)
            if (!pages[page]) {
              pages[page] = []
            }
            pages[page].push(item)
          })
          return pages
        }
      }
    }
    </script>

     ajax获取后台数据

    vue提供了好几种ajax的方法,但是我们这边采用的是axios  模块,是vue官方提供的模块。

     npm  install  axios  --save  下载

     import axios from 'axios'    引用

     使用方法:

    export default {
        name: 'Home',
        components: {
        HomeHeader,
        HomeSwiper,
        HomeIcons,
        HomeRecommend,
        HomeWeekend
      },
      methods: {
        getHomeInfo () {
          axios.get('/api/index.json?city=' + this.city)   // 利用axios执行ajax请求
            .then(this.getHomeInfoSucc)                    // 请求成功之后执行这个回调函数
        },
        getHomeInfoSucc (res) {
          res = res.data
          if (res.ret && res.data) {
            const data = res.data
            this.swiperList = data.swiperList
            this.iconList = data.iconList
            this.recommendList = data.recommendList
            this.weekendList = data.weekendList
          }
        }
      },
      mounted () {               //  挂载的时候执行这个函数
        this.lastCity = this.city
        this.getHomeInfo()
      },
    
    }

    转发请求来实现前后端接口分离

    为啥要有这个功能呢?思考一下,我们前端开发的时候,数据是我们模拟的,接口url也是我们模拟的,然后我们开发ok之后后台给我们接口,我们再一个修改修改url,这样是很不友好的,也容易犯错,难不能这样呢?我们写的url就是后台真正的url,但是可以做一个转发,转发到我本地的数据源,这样当真正上线的时候,我们就不用再一个修改接口了。实现这个效果需要在配置文件中配置下。

    configindex.js 中

     proxyTable: {
          '/api': {
            target: 'http://localhost:80',
            pathRewrite: {
              '^/api':"/static/mock"       //意思是当我们请求api开头的接口时,vue就会帮我们自动转发到/static/mock路径下
            }
          }
        },

    下拉实现

    利用 better-scroll插件来实现的

    https://www.cnblogs.com/xiaohaifengke/p/7308943.html    博客推荐

    https://github.com/ustbhuangyi/better-scroll      gitHub地址

     mounted () {
        this.scroll = new Bscroll(this.$refs.wrapper)   // 实现滑动效果
      }
     
      this.scroll.scrollToElement(element)    //这个方法是说 你获取到element的Dom元素,放进去,会自动滚动到相关的dom位置
  • 相关阅读:
    【心得】软件团队Git工作流及Jira的基本知识和常见问题解释
    项目系统Netty的Channel和用户之间的关系绑定正确做法,以及Channel通道的安全性方案
    Redis中的事务(多命令)操作
    Redis中的订阅模式
    Redis中有序列表(ZSet)相关命令
    Redis散列(Hash)的相关命令
    输入输出流String间的转换
    linux 常用命令
    Gradle 使用
    c 学习笔记 0
  • 原文地址:https://www.cnblogs.com/coder-lzh/p/9278986.html
Copyright © 2011-2022 走看看