主頁 >  其他 > 微信小程式的基礎入門知識點

微信小程式的基礎入門知識點

2020-10-24 17:50:07 其他

1.微信小程式設定Tabbar
一般設定tabbar需要在全域app.json里面配置
代碼如下:


Page({
    data: {
        list: [{
          "text": "對話",
          "iconPath": "../../images/tabbar_icon_chat_default.png",
          "selectedIconPath":"../../images/tabbar_icon_chat_active.png",
            dot: true
        },
        {
          "text": "設定",
          "iconPath": "../../images/tabbar_icon_setting_default.png",
          "selectedIconPath": "../../images/tabbar_icon_setting_active.png",
            badge: 'New'
        }]
    },
});

Tabbar還有其他可以設定值的屬性具體可以查看微信開放檔案
點擊進入微信小程式開放檔案

2.微信小程式設定頭部
設定頭部需要在每個頁面的json里面設定其樣式
代碼如下,僅供參考

{
  "navigationBarTitleText": "會員中心",
  "usingComponents": {}
}

還可以設定其他的樣式,可以去微信開放檔案查看

3.微信小程式檔案型別
微信小程式檔案型別一般由4個檔案組成分別為js、json、wxml、wxss
這里先簡單說一下js
js一般是用于邏輯互動的,例如點擊事件,獲取資料等都要在js里進行
代碼如下

 //點擊事件
  GetUserInfo: function (e) {
    console.log(e)
    if (e.detail.userInfo) {
      this.getLogin()

    } else {
      wx.showToast({
        title: '拒絕登陸',
        mask: true,
        duration: 2000,
      })
    }
  }

接下來介紹一下json
JSON 是一種資料格式,并不是編程語言,在小程式中,JSON扮演的靜態配置的角色,
在json里面可以設定頁面路徑、界面表現、網路超時時間、底部 tab 等,
代碼如下:

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "Weixin",
    "navigationBarTextStyle":"black"
  }
}

然后就是wxml
網頁編程一般采用的是html、css、和js,微信小程式里面的wxml類似于html,他是由屬性、標簽等組成的,但他和html里面標簽并不是完全一樣的比如:view、text標簽
代碼如下

  <view class="sp">
      <view wx:for="{{bargaintwo}}" wx:for-index="index" class="spson" catchtap="toparticulars" data-id="{{item.id}}">
          <image src="{{item.pic}}"></image>
          <view class="na">{{item.name}}</view>
          <text class="te">{{item.minPrice}}</text>
          <text class="ta" wx:if="{{item.originalPrice!=0}}">{{item.originalPrice}}</text>
      </view>
  </view>

最后就是wxss
看過上面的小伙伴相信可以猜出他是做什么的,對!沒錯,他類似于css,是用來改變wxml頁面樣式的,可以美化頁面,對你的頁面進行裝扮,讓你的頁面變得更加的漂亮,增加用戶體驗,
不多說,直接上代碼

.nr{
  width: 710rpx;
  height: 300rpx;
  margin-left: 20rpx;
  background-color: rgb(230, 225, 225);
  display: flex;
  justify-content: start;
  border-radius: 2rpx;
}
.nr image{
  width: 260rpx;
  height: 260rpx;
  margin-top: 20rpx;
  margin-left: 20rpx;
}

如果您對微信小程式還不是特別了解的話,具體可以去微信開放檔案查看哦~

4.小程式頁面的生命周期和小程式組件生命周期
小程式頁面的生命周期

  onLoad(options) {
    console.log('onLoad監聽頁面加載');
  }

  onReady() {
    console.log('onReady監聽頁面初次渲染完成');
  }

  onShow() {
    console.log('onShow監聽頁面顯示');
  }

  onHide() {
    console.log('onHide監聽頁面隱藏');
  }

  onUnload() {
    console.log('onUnload監聽頁面卸載');
  }

如果您對于小程式頁面生命周期還不是特別了解的話,可以去看一看關于小程式頁面升周期的其他博客,相信會對您有一些幫助,

小程式組件生命周期

data組件的內部資料,和 properties 一同用于組件的模板渲染
observers組件資料欄位監聽器,用于監聽 properties 和 data 的變化,參見 資料監聽器
methods組件的方法,包括事件回應函式和任意的自定義方法,關于事件回應函式的使用,參見 組件間通信與事件
created組件生命周期函式-在組件實體剛剛被創建時執行,注意此時不能呼叫 setData
ready組件生命周期函式-在組件布局完成后執行
moved組件生命周期函式-在組件實體被移動到節點樹另一個位置時執行)

以上知識一部分具體可查看小程式官方檔案

4.封裝介面
獲取介面資料的時候需要在 生命周期函式–監聽頁面加載 中獲取,
每獲取一次都要寫大量的代碼,在這里我對介面進行了簡單的封裝,可以 減少很多的代碼量,希望會多大家有幫助,
我是習慣創建一個request檔案夾在里面寫三個js檔案,分別是api.js、fetch.js、http.js、

api.js用于管理介面
代碼如下:

module.exports = {
  "swipe": "/liukaige/banner/list", //輪播圖
  "classify":"/liukaige/shop/goods/category/all",//分類
  "bargain":"/liukaige/shop/goods/list",//砍價
  "particulars":"/liukaige/shop/goods/detail",//詳情
}

fetch.js用于封裝http
代碼如下:

//封裝 http
module.exports = (url, path, method, params) => {
  return new Promise((resolve, reject) => {
    wx.request({
      url: `${url}${path}`,
      method: method,
      data: Object.assign({}, params),
      header: {
        //設定回應頭
        "Content-Type": "application/x-www-form-urlencoded",
      },
      success: resolve,
      fail: reject,
    });
  });
};


http.js封裝介面完成,頁面呼叫即可
代碼如下:

//引入api.js和fetch.js
const api = require('./api.js')
const fetch = require('./fetch.js');


let baseUrl = 'https://api.it120.cc';

function fetchGet(path, params) {
  return fetch(baseUrl, path, 'get', params);
}

function fetchPost(path, params) {
  return fetch(baseUrl, path, 'post', params);
}


module.exports = {
  swipe(params) {  //輪播圖
    return fetchGet(api.swipe, params);
  },
  notice(params){ //首頁通知
    return fetchGet(api.notice, params);
  },

}

接下來還需要在app.js全域設定一下

const http=require('./request/http')
App({
  http, // http.fetch
})

封裝完成那么如何在js檔案里呼叫渲染資料
代碼如下:

	//引入全域設定
	const app = getApp();
    //呼叫封裝好的借口
    app.http.classify().then((res) => {
     this.setData({
        classify: res.data.data

      })
    })

5.路由跳轉
1.navigateTo (有回傳鍵,不可以跳轉到tabBar頁面)

wx.navigateTo({
  url: '/pages/detail/detail?id=1'
})

2.switchTab (沒有回傳鍵,只能跳轉到tabBar頁面,不可以攜帶引數)

wx.switchTab({  
      url: `/pages/detail/detail`,
    })

3.reLaunch (跳轉任意頁面, 沒有回傳, 有 首頁 按鈕)

    wx.reLaunch({
      url: '/pages/detail/detail'
    })
  

4.redirectTo ( 只可以跳轉tabBar 頁面, 沒有回傳,但有首頁按鈕)

    wx.redirectTo({
       url: `/pages/detail/detail`,
    })

5.navigateBack (應用在目標頁面, delta值為1、 表示跳轉上一頁,2、表示跳轉兩級)

   wx.navigateBack({
       delta:1
    })

6.路由跳轉傳遞引數
路由跳轉傳遞引數一般用于跳轉詳情,在這里呢傳遞的引數是id
代碼如下:

<!-- wxml頁面 -->
  <view class="sp">
    <!-- 跳轉詳情首先要給它一個點擊事件,傳遞id  data-id="{{item.id}}",在這里也可以傳遞其他引數 -->
      <view wx:for="{{bargaintwo}}" wx:for-index="index" class="spson" catchtap="toparticulars" data-id="{{item.id}}">
          <image src="{{item.pic}}"></image>
          <view class="na">{{item.name}}</view>
          <text class="te">{{item.minPrice}}</text>
          <text class="ta" wx:if="{{item.originalPrice!=0}}">{{item.originalPrice}}</text>
      </view>
  </view>

// js檔案
  toparticulars:function(e){
    //要傳遞的引數
      let id=e.currentTarget.dataset.id
      wx.navigateTo({
        //即將跳轉的頁面和拼接引數
        url:"/pages/index/particulars/particulars?id="+id
      })
  },

7.for回圈
微信小程式的for回圈的選項是item,下標是index,
代碼如下:

<view wx:for="{{arr}}">
   <text>{{index}}--- {{item}}</text>
</view>

也可以指定遍歷選項和下標的別名,

遍歷選項:wx:for-item=“xxx”

遍歷下標:wx:for-index=“yyy”
代碼如下:

<!-- 給遍歷的item指定別名,給遍歷的下標指定別名 -->
<view wx:for="{{arr}}" wx:for-item="testItem" wx:for-index="i">
  <text>{{testItem}} === {{i}}</text>
</view>

8.本地存盤的幾種方式
(1)wx.setStorageSync(); 用于存盤
代碼如下:

1 try {
2   wx.setStorageSync('key', 'value')
3 } catch (e) {
5  }

(2)wx.removeStorageSync(); 洗掉指定的值
代碼如下:

1 try {
2   wx.removeStorageSync('key')
3 } catch (e) {
4 
5 }

(3)wx.getStorageSync(); 獲取值

1 try {
2   var value = wx.getStorageSync('key')
3   if (value) {

5   }
6 } catch (e) {

8 }

(4)wx.getStorageInfoSync(); 獲取當前存盤中所有的 key

1 try {
2   const res = wx.getStorageInfoSync()
3   console.log(res.keys)
6 } catch (e) {
8 }

(5)wx.clearStorageSync(); 清除所有的key

1 try {
2   wx.clearStorageSync()
3 } catch(e) {
5 }

以上都是同步的存盤,異步存盤和同步存盤方法一樣,在這里就大致列舉一下
(1)wx.setStorage(); //存盤值
(2)wx.removeStorage(); // 移除指定的值
(3)wx.getStorage(); // 獲取值
(4)wx.getStorageInfo(); // 獲取當前 storage 中所有的 key
(5)wx.clearStorage(); // 清除所有的key

8.頁面配置

backgroundColorTop頂部視窗的背景色,僅 iOS 支持
backgroundColorBottom底部視窗的背景色,僅 iOS 支持 微信客戶端 6.5.16
style啟用新版的組件樣式
navigationBarBackgroundColor導航欄背景顏色,如 #000000

以上只是一點點例子,要想更深入的了解可以去微信開放檔案查看,
微信小程式頁面配置官方檔案

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/189152.html

標籤:其他

上一篇:OpenSSH_8.3-命令注入漏洞攻擊與修復

下一篇:vue 監聽表單變化

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more