小程式-基礎表達篇

来源:https://www.cnblogs.com/timeddd/archive/2019/10/09/11645062.html
-Advertisement-
Play Games

/約定/ 讓我們輕裝上陣 一個功能頁(Page)的開發通常需要四大塊:配置、代碼、佈局、樣式。 這四大塊承載不同的方面,要獨立不混雜,又要整體融合。於是有了以下約定: 每一塊 獨立的文件、相同的文件名、不同的擴展名。 按約定行事,自動融合。 於是,一個小程式的功能頁 Page,就這樣形成了。 ind ...


/約定/ 讓我們輕裝上陣

一個功能頁(Page)的開發通常需要四大塊:配置、代碼、佈局、樣式。
這四大塊承載不同的方面,要獨立不混雜,又要整體融合。於是有了以下約定:
每一塊 --> 獨立的文件、相同的文件名、不同的擴展名。

按約定行事,自動融合。

於是,一個小程式的功能頁 Page,就這樣形成了。

  • index.json
  • index.js
  • index.wxml
  • index.wxss

而 app.js,app.json,app.wxss 則作為全局定義。

再繼續來看代碼部分
它少不了這三大塊:數據、生命周期、功能過程。
不需要額外的配置,約定一種結構方式即可。

Page({ data, on階段, func... })

再來看四大塊中的交互
通過約定之後,可謂我中有你,你中有我,wxss 定義的名稱,wxml 可以根據需要使用,js 定義的數據,wxml 可以靈活呈現,數據變,呈現自動變。

常用表達

1.點擊事件

通過 bindtap 屬性指定一個功能函數名稱即可。以下示例中,{{ msg }} 綁定代碼中定義的數據屬性 msg,按鈕點擊事件,執行代碼中的 clickMe 功能函數,它改變了 msg 的值,則頁面也會相應的呈現新的值。

<view>{{ msg }}</view>
<button bindtap="clickMe">點擊我</button>

Page({
  data: { msg : null },
  clickMe: function() {
    this.setData({ msg: "Hello World" })
  }
})

2.頁面跳轉

wx.navigateTo({
   url: '../mypage',
})

當存在參數時,如:
/mypage?id=123
可通過 onLoad 里 options 可取得參數,如 options.id

Page({ 
  onLoad: function (options) {
    console.log(options.id); 
  },

3.獲取輸入值

輸入控制項 bindinput 指定輸入事件,在傳遞的參數(如參數名為 e)中通過 e.detail.value 可以取到值。

<input id="ipt" bindinput='iptInput'></input> 

iptInput: function(e){
    this.setData({ iptValue : e.detail.value});
}

4.JSON轉換

stringify(object): 將 object 對象轉換為 JSON 字元串,並返回該字元串。
parse(string): 將 JSON 字元串轉化成對象,並返回該對象。

5.WEB 請求

普通請求
在調試階段,項目可以設置:開發環境不校驗安全功能變數名稱TLS版本與HTTPS證書。這樣可以使用 http 做測試,正式環境要求使用 https。

wx.request({
  url: 'http://.../test.php', 
  data: {
     x: ''  
  },
  header: {
      'content-type': 'application/json'  // 預設值
  },
  success: function(res) {
    console.log(res.data)
  }
})

文件上傳

wx.uploadFile({
  url: 'http://.../upload',
  filePath: this.data.fileinfo.path,
  name: 'myfile',
  formData: {
    id: "busiid",
  },
  success: function (resu) {
    console.log(resu);
    wx.showToast({
      title: '請求成功',
    })
  },
  fail: function(err){
    wx.showToast({
      title: '錯誤' + err.errMsg 
    })
    console.log(err);
  }
})

6.消息提示

wx.showModal({
  title: '消息',
  content: '您點擊了',
  showCancel: false
})

wx.showToast({
  title: '錯誤' + err.errMsg 
})

7.引入weui-wxss

兩個步驟
7.1下載
https://github.com/Tencent/weui-wxss/blob/master/dist/style/weui.wxss
7.2引用
將weui.wxss 放在與 app.wxss 同一目錄下。在app.wxss 中最前邊引用即可。

@import 'weui.wxss';

文檔:https://github.com/Tencent/weui/wiki

8.其它

當非同步方法中要更新數據時,不能直接使用 this.setData,此時,可以在非同步發起代碼前加上 let that = this;,然後使用 that.setData 來操作。

在 app.json 配置 tabBar 可以直接定義底部導航。

{
  "tabBar": {
    "color": "#ddd",
    "selectedColor": "#3cc51f",
    "backgroundColor": "#fff",
    "borderStyle": "black",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首頁"
      }, 
      {
        "pagePath": "pages/profile/profile",
        "text": "我的"
      }
    ]
  } 
}

其它組件、模板,WXS(WeiXin Script)參考官方開發文檔。

文檔鏈接

官方開發文檔

自定義組件

基礎組件的一些例子


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • //OBJC_ASSOCIATION_ASSIGN類似於我們常用的assign,assign策略的特點就是在對象釋放以後,不會主動將應用的對象置為nil,這樣會有訪問僵屍對象導致應用崩潰的風險。為瞭解決這個問題:我們可以創建一個替身對象,以OBJC_ASSOCIATION_RETAIN_NONATO ...
  • 一、isa指針結構 分析: 1.我們知道,實例對象的isa指針指向該對象所屬類的類對象;類對象的isa指向其元類對象; 2.真機為arm64架構,模擬器和mac電腦為x86架架構,以下以arm64為例講解; 3.在64位系統下,指針所占位元組為8個即64位; 4.在arm64之前,isa就是一個普通的 ...
  • 前段時間因為一個bug,研究了一下android binder的大概流程,方便自己理解畫了一個框圖。 粗點線箭頭是繼承關係,細實線箭頭是調用關係。 ...
  • 最近需要實現導航功能,其中路線規劃和導航場景如下圖所示: 上面的截圖中,路線上面都繪製出了路名,方便用戶查看自己選擇的路線都經過了哪些道路。這裡用到的地圖的能力即為 騰訊地圖 Android SDK v4.2.7 已經開放了實現此功能的能力。 主要涉及介面如下: 介面名稱 | 功能概述 : | : ...
  • axios的除了初始化配置外,其它有用的應該就是攔截器了,攔截器分為請求攔截器和響應攔截器兩種: 請求攔截器 ;在請求發送前進行一些操作,例如在每個請求體裡加上token,統一做了處理如果以後要改也非常容易。 響應攔截器 ;是在接收到響應後進行一些操作,例如在伺服器返回登錄狀態失效,需要重新登錄的時 ...
  • XML Schema XSD (XML Schema Definition)是W3C於2001年5月發佈的推薦標準,指出如何形式描述XML文檔的元素。XSD是許多XML Schema 語言中的一支。XSD是首先分離於XML本身的schema語言,故獲取W3C的推薦地位。 像所有XML Schema ...
  • 一、介紹 運用UniApp+Vue+Vuex+swiper+uniPop等技術開發的仿微信原生App聊天室|仿微信聊天界面實例項目uniapp-chatroom,實現了發送圖文消息、表情(gif圖),圖片預覽、地圖位置、長按菜單、紅包/錢包、仿微信朋友圈等功能。 二、測試效果 H5 + 小程式 + ...
  • 一、判斷方法 1.判斷是否元素寬高為200的盒子 只需要看:邊框+內邊距+內容寬度/內容高度的值是否等於200 2.判斷是否內容寬高為100的盒子 只需要看:width和heght的值是否等於100 3.判斷是否元素空間寬高為300的盒子 只需要看:外邊距+邊框+內邊距+內容寬度/內容高度的值是否等 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...