美文网首页手机开发程序员程序员
全栈开发工程师微信小程序-上

全栈开发工程师微信小程序-上

作者: 魔王哪吒 | 来源:发表于2019-01-11 00:26 被阅读6次
    标题图

    全栈开发工程师微信小程序-上

    实现swiper组件

    swiper
    滑块视图容器。

    indicator-dots 是否显示面板指示点 false
    indicator-color 指示点颜色
    indicator-active-color 当前选中的指示点颜色
    autoplay 是否自动切换 false
    current 当前所在滑块的 index
    interval 自动切换时间间隔
    duration 滑动动画时长
    circular 是否采用衔接滑动 false 
    vertical 滑动方向是否为纵向 false
    display-multiple-items 同时显示的滑块数量
    
    <swiper style='height: 100%; width: 100%;' indicator-dots>
     <swiper-item wx:fot="{{pics}}" wx:key="{{item.id}}" style="flex:1;">
      <image src="{{item.image}}" mode="" style='position: absolute; height: 100%; width: 100%; opacity: .8;'>
      </image>
     </swiper-item>
    </swiper>
    
    // index.js
    <swiper
      indicator-dots="{{indicatorDots}}"
      autoplay="{{autoplay}}"
      interval="{{interval}}"
      duration="{{duration}}"
    >
      <block wx:for="{{imgUrls}}">
        <swiper-item>
          <image src="{{item}}" class="slide-image" width="355" height="150" />
        </swiper-item>
      </block>
    </swiper>
    <button bindtap="changeIndicatorDots">indicator-dots</button>
    <button bindtap="changeAutoplay">autoplay</button>
    <slider bindchange="intervalChange" show-value min="500" max="2000" />
    interval
    <slider bindchange="durationChange" show-value min="1000" max="10000" />
    duration
    
    // js
    Page({
      data: {
        imgUrls: [
          'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg',
          'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg',
          'http://img06.tooopen.com/images/20160818/tooopen_sy_175833047715.jpg'
        ],
        indicatorDots: false,
        autoplay: false,
        interval: 5000,
        duration: 1000
      },
      changeIndicatorDots(e) {
        this.setData({
          indicatorDots: !this.data.indicatorDots
        })
      },
      changeAutoplay(e) {
        this.setData({
          autoplay: !this.data.autoplay
        })
      },
      intervalChange(e) {
        this.setData({
          interval: e.detail.value
        })
      },
      durationChange(e) {
        this.setData({
          duration: e.detail.value
        })
      }
    })
    

    显示:

    效果
    page {
     height: 100%;
     background-color: #f0f0f0;
    }
    

    缓存本地数据

    wx.setStorage(Object object)

    将数据存储在本地缓存中指定的 key

    单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB

    key 本地缓存中指定的 key
    data 需要存储的内容
    只支持原生类型、Date、及能够通过JSON.stringify序列化的对象
    
    wx.setStorage({
      key: 'key',
      data: 'value'
    })
    
    try {
      wx.setStorageSync('key', 'value')
    } catch (e) { }
    
    onLoad: function (options) {
    }
    
    onLoad(options) {
    }
    

    wx.getStorage(Object object)

    从本地缓存中异步获取指定key的内容

    wx.getStorage({
      key: 'key',
      success(res) {
        console.log(res.data)
      }
    })
    
    try {
      const value = wx.getStorageSync('key')
      if (value) {
        // Do something with return value
      }
    } catch (e) {
      // Do something when catch error
    }
    

    引用样式

    @import "   .wxss";
    

    页面跳转

    <scroll-view scroll-x>
     <view style="display:flex;">
      <navigator url="item?id={{item.id}}" wx:for="{{item.movies}}" wx:key="{{item.id}}">
     
     </navigator>
     </view>
    </scroll-view>
    

    wx.showLoading(Object object)

    显示 loading 提示框

    title   提示的内容
    mask 是否显示透明蒙层,防止触摸穿透
    
    wx.showLoading({
      title: '加载中',
    })
    
    setTimeout(function () {
      wx.hideLoading()
    }, 2000)
    

    wx.hideLoading是隐藏加载提示的界面交互API
    wx.showLoading是显示加载提示的API

    template 声明标签
    name 用于模板名称
    
    <import src="list"/>
    <template is="list"/>
    

    刷新功能

    Page.onPullDownRefresh()
    监听该页面用户下拉刷新事件

    wx.startPullDownRefresh()
    

    wx.stopPullDownRefresh()

    Page({
      onPullDownRefresh: function(){
        wx.stopPullDownRefresh()
      }
    })
    

    navigationBarTitleText代表小程序的标题.

    wx:for是列表渲染标签,默认当前循环项的变量名为item.wx:key用于在动态列表渲染中保存子项的特征和状态.

    使用wx.getStorageSync,和wx.getStorage,前者是同步调用,后者是异步调用.前者调用后可以返回结果,后者需要在回调函数中获取结果.

    onLoad(options){
     var a = wx.getStorageSync('key');
    }
    

    wx.getStorageSync(key)是小程序同步缓存API,有Sync字样,都是同步API,缓存获取可能会失败,一般是将同步代码放在try catch代码.

    冒泡事件

    bind方式绑定的事件具有冒泡属性,

    flex 属性

    flex 属性是 flex-grow、flex-shrink 和 flex-basis 属性的简写属性
    
    默认值:    0 1 auto
    
    flex: flex-grow flex-shrink flex-basis|auto|initial|inherit;
    

    flex:1 详解

    flex 是 flex-grow、flex-shrink、flex-basis的缩写
    
     flex 的默认值是 0 1 auto
    
    当 flex 取值为 none,则计算值为 0 0 auto
    
    当 flex 取值为 auto,则计算值为 1 1 auto
    

    flex:1 代表什么?

    flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto
    
    auto (1 1 auto) 和 none (0 0 auto)
    
    效果
    display flex | inline-flex
    
    flex-direction row | row-reverse | column | column-reverse
    
    flex-wrap nowrap | wrap | wrap-reverse
    
    效果 效果 效果

    案例:

    <style>
    #flex {
        display: flex;
        flex-flow: row wrap;
        width: 300px;
    }
    .item {
        width: 80px;
    }
    <style>
    
    <div id="flex">
        <div class='item'>1</div>
        <div class='item'>2</div>
        <div class='item'>3</div>
        <div class='item'>4</div>
    </div>
    
    效果

    flex

    flex: 0 auto
    flex: initial flex: 0 1 auto
    flex: auto flex: 1 1 auto
    flex: none flex: 0 0 auto
    
    justify-content flex-start | flex-end | center | space-between | space-around
    
    效果
    align-items flex-start | flex-end | center | baseline | stretch
    
    align-self auto | flex-start | flex-end | center | baseline | stretch
    
    效果
    align-content flex-start | flex-end | center | space-between | space-around | stretch
    
    效果

    flex:1 代表什么?

    让所有弹性盒模型对象的子元素都有相同的长度,忽略它们内部的内容.

    data.charAt(0)用于提取字符串data的首要字符.

    data.subStr(1)用于从位置1截断字符串并返回.

    this.data.arr.shift()用于从数组arr的首位抽出一个元素.

    this.data.arr.pop()用于将数组arr的顶端,就是最后一个推入的元素抛弃.

    isNaN(a)用于判断是不是非数字.

    Page.onShareAppMessage(Object)

    wx.showShareMenu(OBJECT)
    显示当前页面的转发按钮

    wx.showShareMenu({
      withShareTicket: true
    })
    

    wx.hideShareMenu(OBJECT)
    隐藏转发按钮

    wx.updateShareMenu(OBJECT)
    更新转发属性

    wx.updateShareMenu({
      withShareTicket: true,
      success() {
      }
    })
    

    wx.getShareInfo(OBJECT)
    获取转发详细信息

    onShareAppMessage(res) {
     return {
      title: '',
      path: '',
     }
    }
    

    如果看了觉得不错

    点赞!转发!

    达叔小生:往后余生,唯独有你
    You and me, we are family !
    90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通
    简书博客: 达叔小生
    https://www.jianshu.com/u/c785ece603d1

    结语

    • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
    • 小礼物走一走 or 点赞

    相关文章

      网友评论

        本文标题:全栈开发工程师微信小程序-上

        本文链接:https://www.haomeiwen.com/subject/bycorqtx.html