小程式開發知識點及坑點總結

来源:https://www.cnblogs.com/LuckyWinty/archive/2018/05/12/8889563.html
-Advertisement-
Play Games

知識點 1.小程式裡面,點擊頁面頂部的返回按鈕的時候,返回的那個頁面不會刷新。頁面直接跳轉返回都可以傳參跳轉。需要做處理的時候,在onshow的時候接收參數並處理即可。 2.<!--?xml version="1.0" encoding="UTF-8"?--> 頁面有彈層時,阻止下麵的頁面滾動。 這 ...


知識點

1.小程式裡面,點擊頁面頂部的返回按鈕的時候,返回的那個頁面不會刷新。頁面直接跳轉返回都可以傳參跳轉。需要做處理的時候,在onshow的時候接收參數並處理即可。

2. 頁面有彈層時,阻止下麵的頁面滾動。

這個只能是用“曲線救國”來形容了。因為不能直接操作dom。就要通過class控制。通過設置外層的dom為fixed,寬度高度為100%;

.tripFix_root{
    top:0px;
    left: 0px;
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: fixed;
    z-index: 0;
}
 <view class="wx_wrap recharge {{fixflag?'tripFix_root':''}}"></view>

如果,你是index頁面中用了組件,然後組件里有彈窗,這個時候要阻止的是index裡面的最外層dom。這就要組件事件(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.html)來處理了。

3.小程式樣式單位rpx(responsive pixel): 可以根據屏幕寬度進行自適應。規定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。有時候會出現在大屏手機上顯示過小的情況。

4. 小程式中的數據改變需要調用setData去設置。如果想改變數組中的某一項的某個值,可以這樣設置:

Page({
  data: {
    array: [{text: 'init data'}],
  },
  changeItemInArray: function() {
    this.setData({
      'array[0].text':'changed data'
    })
  }
})

動態設置某個值的時候可以這樣設置

var param = {};
var string = "array["+index+"].text;
param[string] = 'changed data';
that.setData(param);

5.wx:if的使用,跟vue中的v-if原理一樣, 如果不符合渲染條件,它不會渲染相應部分; 小程式中有元素顯示頻繁切換的需求,例如選中與不選中這樣。建議使用 display: hidden,通過class控制。這樣能夠提高用戶體驗。

6. 名稱以 bind 開頭的事件不阻止冒泡,名稱以 catch 開頭的事件冒泡是阻止的。如 bindTap 和 catchTab。

7.在 WXML 中,可以使用 dataset 定義 data 中的數據,會通過事件傳遞。它的事件以 data- 開頭,多個單詞以 - 鏈接,如 data-a-b。也可以整個對象一起傳,如data-item="{{item}}",需要註意的是,使用這種方式定義的變數不能有大寫。它會自動轉成駝峰命名,調取的時候去駝峰命名的名字。

8.block標簽,<block/> 並不是一個組件,它僅僅是一個包裝元素,不會在頁面中做任何渲染,只接受控制屬性。

因為 wx:if 是一個控制屬性,需要將它添加到一個標簽上。如果要一次性判斷多個組件標簽,可以使用一個 <block/> 標簽將多個組件包裝起來,併在上邊使用 wx:if 控制屬性。這樣可以減少標簽的使用。
<block wx:if="{{true}}">
             <view> view1 </view>
            <view> view2 </view>
        </block>

 9.輸入框Input坑點

1)鍵盤彈起,頁面自動上推。。但是目前,沒有用戶到達此版本,

2) 輸入框輸入號碼時,按照344格式化,直接return字元串並不生效。用setData設置則生效,但ios下可以明顯看到有間隔,安卓下實際上有間隔,但是必須輸入框失焦才會顯示出來。

3) 不能在bindinput事件中setData,否則ios下有一個嚴重的bug。具體表現為,輸入事,游標移至中間輸入或刪除,游標會自動跳到最後。

10.<block/> 並不是一個組件,它僅僅是一個包裝元素,不會在頁面中做任何渲染,只接受控制屬性。 因為 wx:if 是一個控制屬性,需要將它添加到一個標簽上。如果要一次性判斷多個組件標簽,可以使用一個 <block/> 標簽將多個組件包裝起來,併在上邊使用 wx:if 控制屬性。         <block wx:if="{{true}}">              <view> view1 </view>             <view> view2 </view>         </block> 11.小程式中picker-view中bindchange方法會在滑動結束後點確定才觸發,如果我隨手一滑,還沒等他停下就就按確定按鈕或者跳轉頁面,那麼bindchange沒觸發就不能獲取到滑動後改變的值 12.開發者工具斷點有bug,對象為undefined,對象裡面的值卻是有東西的。

 

 

 

 

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 本文主要對vue 用$emit 與 $on 來進行組件之間的數據傳輸. 主要的傳輸方式有三種: 1.父組件到子組件通信 2.子組件到父組件的通信 3.兄弟組件之間的通信 一、父組件傳值給子組件 父組件給子組件傳子,使用props 2.子組件到父組件的通信 使用 $emit(eventname,opt ...
  • 一、JS事件 (一)JS事件分類 1.滑鼠事件:click/dbclick/mouseover/mouseout2.HTML事件: onload/onunload/onsubmit/onresize/onchange/onfoucs/onscroll3.鍵盤事件: keydown:鍵盤按下時觸發 k ...
  • 閉包 匿名函數: (function(){} () ) 有名函數: var util=function(){} 區別: function fun() { console.log(1) } fun();//調用 var fun=function(){ console.log(1) } 兩者結果都是列印 ...
  • 一.分支相關 1.基本命令 # 列出所有本地分支 $ git branch # 列出所有遠程分支 $ git branch -r # 列出所有本地分支和遠程分支 $ git branch -a # 新建一個分支,但依然停留在當前分支 $ git branch [branch-name] # 新建一個 ...
  • 一、載入和運行 Javascript代碼執行會阻塞其他瀏覽器處理過程、充分利用webpack或gulp工具對文件打包壓縮,減少js文件的數量,從而減少http請求的次數,以提高網頁應用的實際性能。 二、數據訪問 經典電腦科學的一個問題是確定數據應當存放在什麼地方、以實現最佳的讀寫效率。數據存儲在哪 ...
  • [1]佈局類 [2]盒模型 [3]文本類 [4]修飾類 [5]stylelint ...
  • 個人寫這個彈出框的原因就一個,就是能給我帶來可復用,追求新,要簡單,可擴展。要達到炫酷有點難度,分析後還是決定以功能為主,因為是用jq和animation實現的彈出框組件,所以看起來難度不大,簡稱co-dialog。 演示效果DEMO 靈感來源,因為工作中用到dialog,發現UI設計的彈出框的風格 ...
  • 之前一個已經工作的同學問我上傳圖片立即顯示怎麼實現,這個問題雖然不難,但我還是要去打開電腦找到項目,點開一個個目錄;這時候博客的作用就顯露出來了。。 話不多說,進入正題: 先看看效果 只需要在js中添加如下代碼就可以實現了 這段代碼主要是讀取你選中的圖片文件,先生成圖片,然後再把生成的文件以base ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...