搜尋
首頁微信小程式小程式開發小程式中常用的語法的介紹

小程式中常用的語法的介紹

Sep 18, 2018 pm 04:30 PM
小程式

這篇文章帶給大家的內容是關於小程式中常用的語法的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

接下來我將會從一個初學者的身份,當然,此後的文章不會對小程式的知識點一一都做很細緻的介紹,主要是對比Android的一些思想,進行一些個人的想法闡述。

api語法的介紹

一、盒子模型Flex

#1、flex-wrap:

nowrap(預設):不換行。
 wrap:換行,第一行上方。
 wrap-reverse:換行,第一行在下方。

2、justify-content:所有子view在父View顯示的位置

flex-start(預設值):左對齊
flex-end:右對齊
center:居中
*space-between:兩端對齊,項目之間的間隔都相等。因此這個可以認為是設定權重佈局,每個子View佔一份。如果子View只有一個,則等同於flex-start
*space-around:平均分佈在該行上,兩邊留有一半的間隔空間。專案之間的間隔比專案與邊框的間隔大一倍。如果(作用在父view上)只有一個子view,則其實就是讓子View居中對齊

space-between屬性圖形展示:

小程式中常用的語法的介紹

##3、align-content

 內容居中。只適用於多行的flex容器,單行不起作用

  flex-start:與交叉軸的起點對齊。
  flex-end:與交叉軸的終點對齊。
  center:與交叉軸的中點對齊。
  space-between:與交叉軸兩端對齊,軸線之間的間隔平均分佈。
  space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。
  stretch(預設值):軸線佔滿整個交叉軸。

4、align-items

讓每個View在父view的對齊方式。適用於所有的flex容器。

 flex-start:交叉軸的起點對齊。
 flex-end:交叉軸的終點對齊。
 center:交叉軸的中點對齊。
 baseline: 項目的第一行文字的基線對齊。
 stretch(預設值):如果項目未設定高度或設為auto,將佔滿整個容器的高度。

5、範例

1)讓容器的子View居中顯示

 在容器(父View)中新增:

 display: flex;
 align-items: center;

2)讓一個View佈局顯示在最底層,或最上層,類似於FramLayout佈局

使用z-index屬性:

{        
 position:absolute;              
 left:0px;              
 top:0px;              
  z-index:-1;            
 }

注意:

1)z-index只能在absolute 中起作用
2)z-index:-1,被修飾的該View在最底層顯示(可作為背景)               z-index:1 ,在最外層顯示

二、js相關的api

1、變數

我們知道,在Java中,如果是整個類別中需要用到的對象,我們將在類別中宣告為成員變量,在某個具體方法中有效的宣告為局部變數。那麼對應的小程式是:

var:java中的成員變數
let:java中局部變數

#2、基本資料型別Boolean

    var test0 = ""            //false
    var test1 = "aaaaaaaa"   // true
    var test2 = null          // false
    var test3 = 11           // true
    var test4 = 0            // false
    var test5 = {}           // true

 總結:這個與java差異還是很大的

   1)對於數字型(int、float),只要是非0的數字都是true;
   2)對於字串(String),只有是null、和「」空串才是false,其他都是false
   3)對於對象,除了對像是null才是false,其他都是true。就算這個物件是一個空的物件{}

3、函數

(1)函數定義        在page定義:

  onShow: function (params) {
    //方法体
  },

非page定義:

function test(params){
    //方法体}

總結:

           1.第一種定義必須在最後面要加上「,」逗號,而第二種方式不能加
           2.與java不同的是,函數的參數params不用指定類型,所以,理論上呼叫方法的時候可以傳遞任意型別。但是一般不這麼做。個人認為還是java嚴謹比較好,可讀性強。
3.參數params的個數沒有限制

(2)回呼函數 1)函數定義

  function request(onFail){
  //调用接口
      wx.request({
        success: function (res) { //接口返回数据
         onFail(res)
      })
    }

2)函數呼叫

             wx.cyou.cache.getCacheValue("key_test", function(result){
                console.log("result==", result)
            })

(3)注意事項

1)小程式不支援函數的重載和函數的重寫

 2)函數呼叫函數的時候,函數方法不支援直接傳遞。看下面的範例:

   function request1(function1) {
          request2(function1)
        }
       问题: 这在request1方法调用request2的时候,参数也是一个函数function1,直接将function1传递给request2是不可以的

       解决方式:        
       function request1(function1) {
          request2(new function{
              function1()

          }})
        }

        在request2方法的回调函数中去调用function1方法

4、物件的變數

class Person{
  String name;  int age;
}

在java中,如果要遍歷取得Person屬性值name、age,和屬性類型String、int。都是用反射去實現的。那麼,在小程式中卻比java 簡單粗暴很多。具體實現

for (var propertyName in Person){           
var name = propertyName               //对象Person的属性(String、int)
var value = testInfo[propertyName]    // 对象Person的属性值(name、age)
        }

5、export使用

在调用一个类中的方法或者属性值时,必须要在被调用的方法和属性值,定义的时候用export声明

6、disableScroll使用

问题描述:
 有时候,小程序跑在苹果手机上时,会左右滑动退出,也会上下滑动,这样体验不好。这个时候要禁止滑动。

 在app.json中,将disableScroll值设置为true 就可以了:  
 "window": {          
 "disableScroll": true
      }

7、页面page数据的获取与设置

  let pages = getCurrentPages()          
  let curPage = pages[pages.length - 1]         //获取当前页面
          if (curPage.route == url){        //比较获取的页面的url是否跟实际的一致(如url:"pages/order/order")
            curPage.setData({                                //设置数据
              usingOrderList: usingOrderList
            })
          }

8、获取所有的页面

          let pages = getCurrentPages()            // 获取上一个页面
          let prePage = pages[pages.length - 2]          //给页面设置数据
          prePage.setData({
            refreshUserInfo:true
          })          //返回到上一个页面
          wx.navigateBack({
            delta: 1
          })

注意事项:
     调用getCurrentPages()不需要在page环境中(可以视为Android中的Context环境),可以在任何地方直接获取,即util等自定义类中同样生效。类似的还有wx.开头的方法

9、showToast时长设置失效问题

  let title = new String(msg)  //延时弹toast,是为了解决有时候在接口请求后,设置的duration时间不起作用
  setTimeout(function () {
    wx.showToast({
      title: title,
      duration: 1200,
      icon: "none"
    })
  }, 100)

10、reLaunch跳转失效问题

     //延时跳转,是为了解决有时候wx.reLaunch不起作用,设置的时间不起作用
    setTimeout(function(){
      wx.reLaunch({
        url: '/pages/home/home'
      })
    },100)

以上是小程式中常用的語法的介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具