Ich bin neu im WeChat-Miniprogramm und weiß nicht viel über die Syntax und die darin enthaltenen Attribute. Ich lerne derzeit intensiv. Der folgende Artikel führt Sie hauptsächlich in den mehrseitigen Parameter ein Die relevanten Informationen zur Kommunikation sind eine Zusammenfassung dessen, was ich kürzlich studiert habe. Freunde, die sie benötigen, können sich darauf beziehen.
Vorwort
-Status wx.navigateBack
auf der Detailseite geändert, da die -Methode des WeChat-Applets die Rückgabe von Parametern nicht unterstützt. Nach der Rückkehr ist die Erfahrung nicht sehr gut, unabhängig davon, ob die Seite aktualisiert werden soll oder nicht. In Android verwenden wir im Allgemeinen die -Methode, um Parameter zurückzugeben, oder verwenden direkt das rxjavasetresult
-Framework oder das Eventbus-Framework, um solche Probleme zu lösen.
Geschäftsanalyse
besteht Der Wert wird A zugewiesen.
Road of Discovery
wx.setStorage
Cache von WeChat nutzen wird auf Seite B gespeichert, kehrt zu Seite A zurück und ruft in der onshow
-Methode auf, um den Cache zu lesen und diese Funktion zu implementieren. Wenn Sie jedoch der Meinung sind, dass die Lösung zu opportunistisch ist, birgt sie auch viele versteckte Gefahren für zukünftige Wartungsarbeiten. wx.getStorage
Dann habe ich einen Weg gefunden, den vorherigen
im Internet zu finden, der diese Funktion auch erreichen kann. Ein Teil des Codes lautet wie folgt: page
var pages = getCurrentPages(); var currPage = pages[pages.length - 1]; //当前页面 var prevPage = pages[pages.length - 2]; //上一个页面 //直接调用上一个页面的setData()方法,把数据存到上一个页面中去 prevPage.setData({ mdata:1 })
Beobachtermodus, was der Typ ist, den ich haben möchte . . So, der Spaß beginnt
Einführung in onfire.js
Event Verteilte Javascript-Bibliothek (nur 0,9 KB), einfach und praktisch.
kann verwendet werden für:
react/vue.js/angular für eine komponentenübergreifende Implementierung
Üben
Die Gedanken sind wie folgt:
senden Sie eine Nachricht.
Ein Seitencode:
var onfire = require("../utils/onfire.js"); var that; var eventObj = onfire.on('key', function () { //做具体的事 }); Page({ data: { }, onLoad: function(options) { // Do some initialize when page load. }, onReady: function() { // Do something when page ready. }, onUnload: function (e) { onfire.un('key'); onfire.un(eventObj2); } })
-Methode auf, um eine Nachricht mit dem Namen „key“ zu abonnieren, und Es gibt keine Übertragungsparameter. Wenn Sie Parameter übergeben müssen, fügen Sie Parameter einfach direkt in onfire.on
hinzu, z. B. function
. var eventObj = onfire.on('key', function (data)...
Hinweis: muss sich von den Nachrichten von in onUnload
abmelden und die Bindung key
aufheben. eventObj
Fügen Sie auf Seite B den Code an der Rückrufstelle hinzu
onfire.fire('key');//key为上文中订阅的消息 //有参数时 onfire.fire('key','test');
Analysebibliothekscode
function _bind(eventName, callback, is_one, context) { if (typeof eventName !== string_str || typeof callback !== function_str) { throw new Error('args: '+string_str+', '+function_str+''); } if (! hasOwnKey(onfireEvents, eventName)) { onfireEvents[eventName] = {}; } onfireEvents[eventName][++cnt] = [callback, is_one, context]; return [eventName, cnt]; }
-Methode tatsächlich aufgerufen wird, wenn die on
-Methode abonniert wird. Diese Methode verwendet hauptsächlich ein _bind
zweidimensionales Array Speichern Sie das abonnierte Objekt.
function _fire_func(eventName, args) { if (hasOwnKey(onfireEvents, eventName)) { _each(onfireEvents[eventName], function(key, item) { item[0].apply(item[2], args); //执行订阅时的方法 if (item[1]) delete onfireEvents[eventName][key]; // 当类型为只订阅一次时,通知后即移除自己。 }); } }
-Methode zum Senden von Nachrichten ruft im Wesentlichen die fire
-Methode auf, durchläuft die Abonnenten nach Namen _fire_func
und benachrichtigt die Abonnenten dann. key
function un(event) { var eventName, key, r = false, type = typeof event; if (type === string_str) { // 如果存在key值,则移除数组 if (hasOwnKey(onfireEvents, event)) { delete onfireEvents[event]; return true; } return false; } else if (type === 'object') { eventName = event[0]; key = event[1]; //如果找到这个对象则卸载 if (hasOwnKey(onfireEvents, eventName) && hasOwnKey(onfireEvents[eventName], key)) { delete onfireEvents[eventName][key]; return true; } //否则返回false return false; } else if (type === function_str) { //两层循环来判断是否是方法名 _each(onfireEvents, function(key_1, item_1) { _each(item_1, function(key_2, item_2) { if (item_2[0] === event) { delete onfireEvents[key_1][key_2]; r = true; } }); }); return r; } return true; }
, Objekt und Methode unterstützt, müssen Sie zuerst den Typ bestimmen und dann die Bindung gemäß den jeweiligen Regeln aufheben. key
Zusammenfassung
Das obige ist der detaillierte Inhalt vonImplementierung der Kommunikation mit mehreren Seitenparametern im WeChat-Applet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!