小程序?qū)W習筆記

1.跳轉(zhuǎn)頁面的方式

  • 跳轉(zhuǎn)目標頁關(guān)閉當前頁 - wx.redirectTo(OBJECT)
  • 跳轉(zhuǎn)目標頁保留當前頁 - wx.navigateTo(OBJECT)
  • 跳轉(zhuǎn)目標頁關(guān)閉所有頁 - wx.reLaunch(OBJECT)
  • 跳轉(zhuǎn)tabBar頁,關(guān)閉其他所有非tabBar頁 - wx.switchTab(OBJECT)
  • 關(guān)閉當前頁 ,返回上級或多級頁
  var pages = getCurrentPages();
  var prevPage = pages[pages.length - 2];  //上一個頁面
  wx.navigateBack({
        delta: prevPage
      })
// 注意:調(diào)用 navigateTo 跳轉(zhuǎn)時,調(diào)用該方法的頁面會被加入堆棧,而 redirectTo 方法則不會。見下方示例代碼

// 此處是A頁面
wx.navigateTo({
  url: 'B'
})

// 此處是B頁面
wx.navigateTo({
  url: 'C'
})

// 在C頁面內(nèi) navigateBack,將返回A頁面
wx.navigateBack({
  delta: 2
})

wx.navigateTo 和 wx.redirectTo 不允許跳轉(zhuǎn)到 tabbar 頁面,只能用 wx.switchTab 跳轉(zhuǎn)到 tabbar 頁面

  • 頁面跳轉(zhuǎn)+帶參
A.普通參數(shù)
<!--傳參頁面-->
  wx.navigateTo({
        url: '../order/order?flag='1'&title='2'
     })

<!--目標頁面.js-->
  onLoad: function (options) {
    this.setData({
      flag: options.flag,
      title: options.title,
    })
  }

B.數(shù)組 字典 對象參數(shù) 通過 JSON.stringify()格式化在傳參
<!--傳參頁面-->
var moduleInfo={
            "id": 2,
            "moduleName": "培訓課程",
            "moduleTable": "train_title_list_detail",
            "iconPath": "/xcx/icon/train_curriculum.png"
        };
 wx.navigateTo({
        url: '../list/list?moduleInfo=' + JSON.stringify(moduleInfo)
      })

<!--目標頁面.js-->
 onLoad: function (options) {
    this.setData({
      moduleInfo: JSON.parse(options.moduleInfo),
    })
  },

2.Flex布局 【從左到右為交叉軸,從上到下為主軸】

  • flex-direction這個屬性是用來規(guī)定flex項目在軸方向上面排列的順序。
屬性:
flex-direction: row | row-reverse | column | column-reverse;
row
如果規(guī)定的方向是 ltr(left to right)項目一次從左往右排列,
如果規(guī)定的方向是 rtl(right to left)項目一次從右往左排列,
row是默認值。
row-reverse
如果規(guī)定的方向是 ltr(left to right)項目一次從右往左排列,
如果規(guī)定的方向是 rtl(right to left)項目一次從左往右排列,
row 和 row-reverse 是相反的。
column 跟row是類似的,只不過是從上到下的方向排列的。
column-reverse 跟row-reverse 是類似的,只不過是從下到上的方向排列的。
  • flex-wrap是決定項目是否多行顯示的屬性,項目默認情況下是在一行下顯示的。
屬性:
flex-wrap: nowrap | wrap | wrap-reverse;
nowrap 指的是在一行顯示不換行;
wrap 指的是多行顯示;
wrap-reverse 指的是多行顯示,但是跟規(guī)定排列方向相反;
 
flex-flow是 flex-direction 和 flex-wrap 的縮寫
flex-flow: <‘flex-direction’> || <‘flex-wrap’>
上面css即:
.container {
  display: flex; /*or inline-flex*/
  flex-flow: row wrap;;
}
  • justify-content用于在主軸上對齊伸縮的項目屬性
屬性:
justify-content: flex-start | flex-end | center | space-between | space-around;

詳細教程
阮一峰詳解flex

3.事件

  • 冒泡事件: 當一個組件上的事件被觸發(fā)后,該事件會向父節(jié)點傳遞。
  • 非冒泡事件:當一個組件上的事件被觸發(fā)后,該事件不會向父節(jié)點傳遞。

以下為冒泡事件,其他組件事件無特殊申明都是非冒泡事件



小例

<view id='outter' bindtap='handleTap1'>
      outer view
    <view id='middle' catchtap='handleTap2'>
          middle view
          <view id='inner' bindtap='handleTap3'>
                inner view
          </view>
    </view>
</view>

事件以bind或者catch開頭
bind事件綁定不會阻止冒泡事件向上冒泡,如bindtap。
catch事件綁定可以阻止冒泡事件向上冒泡,如catchtap。
因為handleTap2是catchtap,所以:
點擊 inner view,會先后觸發(fā) handleTap3、handleTap2
點擊 middle view,只會觸發(fā) handleTap2
點擊 outer view,會觸發(fā) handleTap1

如無特殊說明,當組件觸發(fā)事件時,邏輯層綁定該事件的處理函數(shù)會收到一個事件對象。(見下圖,事件對象)


4.頂部或底部固定

<!-- 頂部固定 -->
<view class="page__hd" style="position:fixed; top:0;width: 750rpx;">
    ......
</view>

<!-- 底部固定 -->
<view class="page__hd" style="position:fixed; bottom:0;width: 750rpx;">
    ......     
</view>

5.修改數(shù)組對象中的某個值

//數(shù)據(jù)
data:{
      role: [
      { id: '1', name: '管理員', checked: false },
      { id: '2', name: '一級代理', checked: false },
      { id: '3', name: '二級代理', checked: false },
    ],
}
//修改點擊項的checked值
 clickSheet: function (e) {
    var index = e.currentTarget.id;
    //先用一個變量,把(role[0].checked)用字符串拼接起來
    var checked= "role[" + index + "].checked";
    //在如此set即可
    this.setData({
      [checked]: !this.data.role[index].checked,
    })
  },

6.修改某個頁面的值

A頁面跳轉(zhuǎn)B頁面,B修改A頁面數(shù)據(jù) 如下:

//A頁面
...
 data: {
   text: 0, 
 },
...
//B頁面
...
 changeValue: function() {
   var pages = getCurrentPages();
   var prePage = pages[pages.length - 2];
   prePage.setData({
       text: 1
  })
 },
...
//此刻再回到A頁面其中text的值已經(jīng)變成了1

7循環(huán)

//Object的循環(huán)
 var par = {  a: 1, b: 2 };
 for (var item in par) {
    console.log(item + ':' + par[item])
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容