国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim WeChat-Applet Mini-Programmentwicklung Analyse des Front-End-Quellcodes des WeChat-Applets

Analyse des Front-End-Quellcodes des WeChat-Applets

Jun 27, 2018 pm 05:35 PM
Wechat Wechat -Applet

In diesem Artikel werden haupts?chlich relevante Informationen zur detaillierten Erkl?rung und Beispielanalyse des Front-End-Quellcodes des WeChat Mini-Programms vorgestellt. Bedürftige Freunde k?nnen sich auf die

Front-End-Quellcode-Logik des WeChat Mini-Programms beziehen Workflow

Die Fertigstellung des Front-End-Codes des WeChat-Applets hat mein Blut wirklich zum Kochen gebracht. Die Codelogik und das Design sind auf einen Blick klar, es gibt keine überflüssigen Dinge, es ist wirklich einfach.

Lassen Sie uns ohne weitere Umschweife den Front-End-Code direkt analysieren. Pers?nliche Meinungen, es kann einige Auslassungen geben, sie dienen nur als Referenz.

Grundstruktur der Datei:

Erster Blick auf den Eingang app.js, app (obj) registriert ein kleines Programm . Akzeptiert einen Objektparameter, der die Lebenszyklusfunktion des Applets usw. angibt. Andere Dateien k?nnen die App-Instanz über die globale Methode getApp() abrufen und dann deren Eigenschaften oder Methoden direkt aufrufen, z. B. (getApp().globalData)

//app.js
App({
 onLaunch: function () {
  //調(diào)用API從本地緩存中獲取數(shù)據(jù)
  var logs = wx.getStorageSync('logs') || []
  logs.unshift(Date.now())
  wx.setStorageSync('logs', logs)
 },
 getUserInfo:function(cb){
  var that = this
  if(this.globalData.userInfo){
   typeof cb == "function" && cb(this.globalData.userInfo)
  }else{
   //調(diào)用登錄接口
   wx.login({
    success: function () {
     wx.getUserInfo({
      success: function (res) {
       that.globalData.userInfo = res.userInfo
       typeof cb == "function" && cb(that.globalData.userInfo)
      }
     })
    }
   })
  }
 },
 globalData:{
  userInfo:null
 }
})

Ich verstehe, dass app.js die Eintragsinitialisierungsdatei ist und dort auch die globale API-Erweiterung bereitgestellt wird. Lassen Sie uns die verschiedenen Methoden und Attribute analysieren, die damit einhergehen.

onLaunch-Hook-Funktion wird automatisch einmal ausgeführt, nachdem die Initialisierung des Miniprogramms abgeschlossen ist, und dann, wenn Sie sie w?hrenddessen nicht aktiv aufrufen Mini-Programmlebenszyklus onLaunch, es wird nicht ausgeführt.

var logs = wx.getStorageSync('logs') || [] Rufen Sie das Protokollattribut im lokalen Cache ab, legen Sie logs=[] fest und haben Sie einen ?hnlichen Effekt wie localStorage in HTML5

logs.unshift(Date.now()) Fügen Sie die aktuelle Anmeldezeit zum Array hinzu

wx.setStorageSync('logs', logs) Speichern Sie die Daten im lokalen Cache, da wx ist ein globales Objekt, daher k?nnen Sie wx.getStorageSync('logs') direkt in anderen Dateien aufrufen, um lokale Cache-Daten zu erhalten

getUserInfo-Funktion, wie der Name schon sagt um angemeldete Benutzerinformationen abzurufen, was dem entspricht, was diese Funktion bereitstellt. Die Schnittstelle zum Abrufen von Benutzerinformationen wird nur ausgeführt, wenn sie von anderen Seiten aufgerufen wird. Andere Seiten rufen diese Methode über getApp().getUserInfo(function(userinfo){console.log(userinfo);}) auf, um Benutzerinformationen abzurufen.

getUserInfo:function(cb){//參數(shù)為cb,類型為函數(shù)
  var that = this
  if(this.globalData.userInfo){//用戶信息不為空
   typeof cb == "function" && cb(this.globalData.userInfo)//如果參數(shù)cb的類型為函數(shù),那么執(zhí)行cb,獲取用戶信息;
  }else{//如果用戶信息為空,也就是說第一次調(diào)用getUserInfo,會(huì)調(diào)用用戶登錄接口。
   wx.login({
    success: function () {
     wx.getUserInfo({
      success: function (res) {
         console.log(res)
       that.globalData.userInfo = res.userInfo//把用戶信息賦給globalData,如果再次調(diào)用getUserInfo函數(shù)的時(shí)候,不需要調(diào)用登錄接口
       typeof cb == "function" && cb(that.globalData.userInfo)//如果參數(shù)cb類型為函數(shù),執(zhí)行cb,獲取用戶信息
      }
     })
    }
   })
  }
 }

Das globalData-Objekt wird verwendet, um globale Daten an anderen Orten zu speichern Analysieren Sie es kurz. Die Funktion dieser Datei besteht darin, das WeChat-Applet global zu konfigurieren, den Pfad der Seitendatei und die Fensterleistung zu bestimmen, das Netzwerk-Timeout festzulegen, mehrere Registerkarten festzulegen usw.

Das Wichtigste ist, dass das Seitenattribut ein Array ist. Die Elemente im Array sind String-Dateipfade, die angeben, aus welchen Seiten das Miniprogramm bestehen muss Das Miniprogramm.

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

Dann schauen Sie sich den Projektindex und die Protokollordner an. Das ursprüngliche Projekt des WeChat-Applets legt die zu jeder Seite geh?renden js, wxss und wxml in eigenen Dateien ab, sodass die Struktur viel klarer aussieht.

Schauen wir uns zun?chst den Indexordner an, der die Startseite des Miniprogramms darstellt. Unter dem Indexordner befinden sich drei kleine Dateien: index.js, index.wxml und index.wxss. Das Miniprogramm trennt JS-, CSS- und HTML-Codes und legt sie in separaten Dateien ab, wobei jede ihre eigenen Aufgaben erfüllt. Die Namen der JS- und Stylesheet-Dateien müssen mit dem WXML-Dateinamen des aktuellen Ordners übereinstimmen, um sicherzustellen, dass die Auswirkungen von JS und Stylesheets auf der Seite angezeigt werden k?nnen. Ich sch?tze ein solches Designkonzept, das sauber und einheitlich ist, klare Verantwortlichkeiten aufweist und die Komplexit?t des Codedesigns reduziert.  

index.wxml, dies ist eine g?ngige Vorlagendatei, die datengesteuert ist. Wer Front-End-MVC- und MVVM-Projekte entwickelt hat, wird damit vertraut sein .  

<!--index.wxml-->
<view class="container">//視圖容器
 <view bindtap="bindViewTap" class="userinfo">//bindtap為容器綁定點(diǎn)擊觸摸事件,在觸摸離開時(shí)觸發(fā)bindViewTap事件處理函數(shù),bindViewTap通過index.js page()設(shè)置添加
  <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>//大雙括號(hào)的變量來自于index.js的data對(duì)象解析成對(duì)應(yīng)的值,而且是實(shí)時(shí)的
  <text class="userinfo-nickname">{{userInfo.nickName}}</text>
 </view>
 <view class="usermotto">
  <text class="user-motto">{{motto}}</text>
 </view>
</view>

 index.js, die Verwendung ist fast die gleiche wie die von React, ?ndern Sie einfach die Suppe, ohne die Medizin zu ?ndern. page(), um eine Seite zu registrieren. Akzeptiert einen OBJECT-Parameter, der die Anfangsdaten, Lebenszyklusfunktionen, Ereignisbehandlungsfunktionen usw. der Seite angibt.

var app = getApp() // 獲取入口文件app的應(yīng)用實(shí)例
Page({
 data: {
  motto: &#39;Hello World&#39;,
  userInfo: {}
 },
 //自定義事件處理函數(shù),點(diǎn)擊.userinfo的容易觸發(fā)此函數(shù)
 bindViewTap: function() {
  wx.navigateTo({//全局對(duì)象wx的跳轉(zhuǎn)頁(yè)面方法
   url: &#39;../logs/logs&#39;
  })
 },
 onLoad: function () {//發(fā)生頁(yè)面加載時(shí),自動(dòng)觸發(fā)該生命周期函數(shù)
  console.log(&#39;onLoad&#39;)
  var that = this
  //調(diào)用應(yīng)用實(shí)例的方法獲取全局?jǐn)?shù)據(jù)
  app.getUserInfo(function(userInfo){
   //更新數(shù)據(jù),頁(yè)面自動(dòng)渲染
   that.setData({
    userInfo:userInfo
   })
  })
 }
})

Die Datei index.wxss rendert nur die aktuelle Seite und überschreibt den gleichen Stil der globalen Datei app.wxss.

Analysieren Sie dann den Protokollordner. Der Protokollordner enth?lt logs.wxml, logs.js, logs.wxss und logs.json. Stellen Sie auf die gleiche Weise sicher, dass derselbe Name vorhanden ist Rendern.

logs.wxml-Datei

<!--logs.wxml-->
<view class="container log-list">
 <block wx:for="{{logs}}" wx:for-item="log">//block容器作用,無其他實(shí)際含義。wx:for作用:遍歷logs數(shù)組,遍歷多少次,block塊就會(huì)復(fù)制多少次,for-item等同于為<br>遍歷元素起一個(gè)變量名,方便引用。<br>
  <text class="log-item">{{index + 1}}. {{log}}</text>
 </block>
</view>

logs.js-Datei

//logs.js
var util = require(&#39;../../utils/util.js&#39;) //util.js相當(dāng)于一個(gè)函數(shù)庫(kù),我們可以在這個(gè)文件內(nèi)自定義擴(kuò)展和封裝一些常用的函數(shù)和方法
Page({
 data: {
  logs: []
 },
 onLoad: function () {
  this.setData({
   logs: (wx.getStorageSync(&#39;logs&#39;) || []).map(function (log) {//通過wx.getStorageSync獲取本地緩存的logs日志數(shù)據(jù)
    return util.formatTime(new Date(log))//日期格式化
   })
  })
 }
})

 logs.json-Datei

{
  "navigationBarTitleText": "查看啟動(dòng)日志"  //當(dāng)前頁(yè)面配置文件,設(shè)置window當(dāng)前頁(yè)面頂部導(dǎo)航欄標(biāo)題等相關(guān)內(nèi)容
}  

Die grundlegende Seitenstruktur und Logik sind so einfach und es gibt nichts R?tselhaftes für uns.

Das Miniprogramm bietet auch viele offizielle Komponenten und APIs, die darauf warten, dass wir tiefer graben, komm schon, Junge!

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So implementieren Sie die Registerkarte ?WeChat Mini-Programm“

WeChat-Applet implementiert Drag-and-Drop-überwachung von Bildberührungsereignissen

DVA-Framework verwaltet einheitlich den Ladestatus aller Seiten

Das obige ist der detaillierte Inhalt vonAnalyse des Front-End-Quellcodes des WeChat-Applets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
TIKTOK Web Version Eingang Anmeldeverlink -Adresse Https Tiktok Web Version Eingangswebsite kostenlos TIKTOK Web Version Eingang Anmeldeverlink -Adresse Https Tiktok Web Version Eingangswebsite kostenlos May 22, 2025 pm 04:24 PM

Das Login -Portal für die Douyin -Webversion ist https://www.douyin.com/. Die Anmeldeschritte umfassen: 1. ?ffnen Sie den Browser; 2. Geben Sie die URL https://www.douyin.com/; 3. Klicken Sie auf die Schaltfl?che "Anmeldung" und w?hlen Sie die Anmeldemethode. 4. Geben Sie das Kontokennwort ein. 5. Komplett Login. Die Webversion bietet Funktionen wie Browsing, Suchen, Interaktion, Hochladen von Videos und pers?nlichem Homepage-Management und bietet Vorteile wie gro?er Erfahrungen, Multitasking, bequemes Kontomanagement und Datenstatistiken.

Kopieren Sie Comics (offizielle Website -Eingang) _copy Comics (NBA) Echtes Online -Leseportal Kopieren Sie Comics (offizielle Website -Eingang) _copy Comics (NBA) Echtes Online -Leseportal Jun 05, 2025 pm 04:12 PM

Das Kopieren von Comics ist zweifellos ein Schatz, der nicht übersehen werden kann. Hier finden Sie Basketball -Comics in verschiedenen Stilen, von leidenschaftlichen und inspirierenden Wettbewerbsgeschichten bis hin zu entspannten und humorvollen t?glichen Kom?dien. Unabh?ngig davon, ob Sie die Klassiker noch einmal erleben oder neue Werke entdecken m?chten, kann das Kopieren von Comics Ihre Bedürfnisse erfüllen. Durch das authentische Online-Leseportal, das von Copy Comics bereitgestellt wird, verabschieden Sie sich von der Mühe von Rabour-Ressourcen, genie?en Sie eine hochaufl?sende und reibungslose Leseerfahrung und k?nnen Ihre bevorzugten Comic-Autoren unterstützen und zur Entwicklung authentischer Comics beitragen.

Was ist besser, UC -Browser oder QQ -Browser? Eingehender Vergleich und Bewertung von UC- und QQ-Browsern Was ist besser, UC -Browser oder QQ -Browser? Eingehender Vergleich und Bewertung von UC- und QQ-Browsern May 22, 2025 pm 08:33 PM

Die Auswahl des UC -Browsers oder der QQ -Browser h?ngt von Ihren Anforderungen ab: 1. UC -Browser ist für Benutzer geeignet, die schnelle Lade- und reichhaltige Unterhaltungsfunktionen verfolgen. 2. QQ Browser eignet sich für Benutzer, die Stabilit?t und nahtlose Verbindung mit Tencent -Produkten ben?tigen.

Top 10 KI -Schreibsoftware -Rankings empfohlen, welche KI -Schreibsoftware kostenlos ist Top 10 KI -Schreibsoftware -Rankings empfohlen, welche KI -Schreibsoftware kostenlos ist Jun 04, 2025 pm 03:27 PM

Die Kombination der neuesten Branchentrends und mehrdimensionalen Bewertungsdaten im Jahr 2025 sind die folgenden Top-Ten-Empfehlungen für KI.

Sehen Sie sich die offizielle Seite von NIS Comics online für kostenlose Comics an. Die Free -Eintrags -Website der NIS Comics -Anmeldeseite Sehen Sie sich die offizielle Seite von NIS Comics online für kostenlose Comics an. Die Free -Eintrags -Website der NIS Comics -Anmeldeseite Jun 12, 2025 pm 08:18 PM

Nice Comics, eine immersive Leserfahrungsplattform, die sich der Erstellung von Comicliebhabern widmet, vereint eine gro?e Anzahl hochwertiger Comic-Ressourcen im In- und Ausland. Es ist nicht nur eine Comic -Leseplattform, sondern auch eine Community, die Comic -Künstler und Leser verbindet und die Comic -Kultur teilt. Mit einfachem und intuitivem Schnittstellendesign und leistungsstarken Suchfunktionen k?nnen Sie mit NES Comics Ihre Lieblingswerke problemlos finden und ein reibungsloses und komfortables Leseerlebnis genie?en. Verabschieden Sie sich von den langen Warten und mühsamen Operationen, betreten Sie sofort die Welt der netten Comics und beginnen Sie Ihre Comic -Reise!

Frog Man Online anzeigen Eingangsmann Frog Man (Webseiteneingang) online ansehen Frog Man Online anzeigen Eingangsmann Frog Man (Webseiteneingang) online ansehen Jun 12, 2025 pm 08:06 PM

Frogman Comics ist die erste Wahl für viele Comicliebhaber mit seinen reichen und vielf?ltigen Comic -Ressourcen und einem bequemen und reibungslosen Online -Leseerlebnis. Es ist wie ein pulsierender Teich, mit frischen und interessanten Geschichten, die st?ndig auftauchen und darauf warten, dass Sie entdecken und erkunden. Frog Man Comics berichten von einer Vielzahl von Themen, von leidenschaftlichen Abenteuern bis hin zu sü?er Liebe, von Fantasie und Science -Fiction bis hin zu Spannung, egal welches Genre Sie m?gen, Sie finden Ihre Lieblingswerke hier. Mit seinem einfachen und intuitiven Schnittstellendesign k?nnen Sie leicht loslegen, schnell die Comics finden, die Sie lesen m?chten, und sich in die aufregende Comic -Welt eintauchen.

Baozi Comics (Eingang) _ Baozi Comics (neuer Eingang) 2025 Baozi Comics (Eingang) _ Baozi Comics (neuer Eingang) 2025 Jun 05, 2025 pm 04:18 PM

Hier k?nnen Sie den riesigen Ozean der Comics genie?en und Werke verschiedener Themen und Stile erkunden, von leidenschaftlichen jungen Mann-Comics bis hin zu zarten und bewegenden M?dchen-Comics, von spannend und hirnverbrennenden Mystery-Comics bis hin zu entspannten und lustigen t?glichen Comics, alles, und es gibt immer eine, die Ihre Herzstrings berühren kann. Wir haben nicht nur eine gro?e Menge echter Comic -Ressourcen, sondern auch die neuesten Arbeiten st?ndig vor, um sicherzustellen, dass Sie Ihre Lieblingscomics so schnell wie m?glich lesen k?nnen.

B Eine neueste registrierte address_Wow, um B einen Austausch zu registrieren B Eine neueste registrierte address_Wow, um B einen Austausch zu registrieren May 26, 2025 pm 07:12 PM

Die neueste offizielle Website von 2025b Anhui ist: https://www.marketwebb.co/zh-cn/join?ref=507720986&amp;type=wenzi; Binance Exchange ist ein globaler Kryptow?hrungsaustausch, der 180 L?nder und Regionen, einschlie?lich Nordamerika, Europa, Taiwan, dem Nahen Osten, Hongkong und Malaysia, dient. Es liefert mehr als 600 Kryptow?hrungen und verfügt über 270 Millionen registrierte Benutzer weltweit.

See all articles