全棧開發工程師微信小程序 - 上

標題圖

全棧開發工程師微信小程序-上小程序

實現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)xss

從本地緩存中異步獲取指定key的內容ide

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 提示框oop

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 點贊
相關文章
相關標籤/搜索