微信小程序頁面跳轉、邏輯層模塊化

一、頁面的跳轉

  微信小程序的頁面跳轉函數方法有兩個,另外還有兩種模塊跳轉方式。

  函數跳轉:

  1.wx.navigateTo(OBJECT):

wx.navigateTo({url: 'test?id=1'})
//
保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack可以返回到原頁面。
//問號后面的參數為傳遞至指定頁面onload方法內的參數。id為自定義參數名,在跳轉頁面獲取參數值時,也是通過這個設置的參數來獲取的。

  2.wx.redirectTo(OBJECT):

       wx.redirectTo({url: 'test?id=1'})
//銷毀
當前頁面,跳轉到應用內的某個頁面。
//問號后面的參數為傳遞至指定頁面onload方法內的參數。id為自定義參數名,在跳轉頁面獲取參數值時,也是通過這個設置的參數來獲取的。

  模塊跳轉:

  1.標簽跳轉:

?  在wxml中添加一個navigator元素,實現跳轉。

<navigator url='../list/list'>點擊我</navigator>

  2.tabBar跳轉:

  在主頁中設置tabBar,在tabBar中設置跳轉頁面。通過點擊其中的圖標,實現跳轉。

{"tabBar": {"list": [{"pagePath": "index","text": "首頁"},{"pagePath": "other","text": "其他"}]}}

  通過wx.switchTab(OBJECT)方法,可以從非tabBar跳轉至tabBar頁面,并關閉所有其他非tabBar頁面。

wx.switchTab({url: '/index'})

  

  頁面的返回:

? ? ? ? ? ? ?關閉當前頁面,返回上一頁面或多級頁面。可通過getCurrentPages()獲取當前的頁面棧,決定需要返回幾層。?

OBJECT 參數說明:

?

參數類型默認值說明
deltaNumber1返回的頁面數,如果 delta 大于現有頁面數,則返回到首頁。

?

// 注意:調用 navigateTo 跳轉時,調用該方法的頁面會被加入堆棧,而 redirectTo 方法則不會。見下方示例代碼// 此處是A頁面
          wx.navigateTo({url: 'B?id=1'})// 此處是B頁面
          wx.navigateTo({url: 'C?id=1'})// 在C頁面內 navigateBack,將返回A頁面
             wx.navigateBack({delta: 2})

二、邏輯層的模塊化:

  調用全局函數getApp()可以獲取小程序的全局應用實例,如果需要全局有效的數據我們可以再App()中定義。

//app.js
App({myNumber:1,
})
//logs.js
onLoad: function () {
var app = getApp()
app.myNumber++
}
//list.js
onLoad: function (options) {console.log("我的數據是:",getApp().myNumber);},

  為了提高代碼的可讀性和效率,可以通過小程序的模塊化特性,將公用的或者需要重復復用的代碼從程序里抽取出來,打包成單獨的.js文件(微信小程序在創建之初就有一個utils/utils.js文件作為js模塊,里面暴露了一個獲取當前時間的方法),提供某種特定的功能,這就是程序的模塊。如果你想要在外部使用utils.js中封裝的方法,只能通過module.exports和exports方法對外暴露接口。

module.exports = {formatTime: formatTime,'對外方法名':'本地方法名'
}

  如何在需要使用這些模塊的文件中使用:使用 require(path) 將公共代碼引入(require 暫時不支持絕對路徑)。

//util.js
function sayHello(name) {console.log(`Hello ${name} !`)
}
module.exports = {sayHello: sayHello
}
var util= require('../../utils/util.js')
Page({data:[],onLoad: function() {console.log(util.sayHello('Cc'))},
})

?

 

  

  

?

轉載于:https://www.cnblogs.com/moxuexiaotong/p/10241909.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387619.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387619.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387619.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java內存溢出分析工具:jmap使用實戰

java內存溢出分析工具&#xff1a;jmap使用實戰 在一次解決系統tomcat老是內存撐到頭&#xff0c;然后崩潰的問題時&#xff0c;使用到了jmap。 1 使用命令 在環境是linuxjdk1.5以上&#xff0c;這個工具是自帶的&#xff0c;路徑在JDK_HOME/bin/下 jmap -histo pid>a.log…

Oracle加密解密

Oracle內部有專門的加密包&#xff0c;可以很方便的對內部數據進行加密&#xff08;encrypt&#xff09;和解密&#xff08;decrypt&#xff09;. 介紹加密包之前&#xff0c;先簡單說一下Oracle基本數據類型——RAW類型。 RAW&#xff0c;用于保存位串的數據類型&#xff0c;類…

條件變量 sync.Cond

sync.Cond 條件變量是基于互斥鎖的&#xff0c;它必須有互斥鎖的支撐才能發揮作用。 sync.Cond 條件變量用來協調想要訪問共享資源的那些線程&#xff0c;當共享資源的狀態發生變化的時候&#xff0c;它可以用來通知被互斥鎖阻塞的線程條件變量的初始化離不開互斥鎖&#xff0c…

JDK內置工具使用

JDK內置工具使用 一、javah命令(C Header and Stub File Generator) 二、jps命令(Java Virtual Machine Process Status Tool) 三、jstack命令(Java Stack Trace) 四、jstat命令(Java Virtual Machine Statistics Monitoring Tool) 五、jmap命令(Java Memory Map) 六、jinfo命令…

mall整合RabbitMQ實現延遲消息

摘要 本文主要講解mall整合RabbitMQ實現延遲消息的過程&#xff0c;以發送延遲消息取消超時訂單為例。RabbitMQ是一個被廣泛使用的開源消息隊列。它是輕量級且易于部署的&#xff0c;它能支持多種消息協議。RabbitMQ可以部署在分布式和聯合配置中&#xff0c;以滿足高規模、高可…

競價打板的關鍵點

競價打板&#xff0c;主要是速度&#xff0c;其他不重要的&#xff0c;如果為了當天盈利大&#xff0c;失去競價打板的本質含義&#xff0c;因為競價可以買到&#xff0c;盤中買不到&#xff0c;才是競價打板的目的&#xff0c;也就是從競價打板的角度看&#xff0c;主要是看習…

Java常見的幾種內存溢出及解決方法

Java常見的幾種內存溢出及解決方法【情況一】&#xff1a;java.lang.OutOfMemoryError:Javaheapspace&#xff1a;這種是java堆內存不夠&#xff0c;一個原因是真不夠&#xff08;如遞歸的層數太多等&#xff09;&#xff0c;另一個原因是程序中有死循環&#xff1b;如果是java…

docker操作之mysql容器

1、創建宿主機器的掛載目錄 /opt/docker/mysql/conf /opt/docker/mysql/data /opt/docker/mysql/logs 2、創建【xxx.cnf】配置文件&#xff0c;內容如下所示&#xff1a; [mysqld]#服務唯一Idserver-id 1port 3306log-error /var/log/mysql/error.log #只能用IP地址skip_nam…

Windows10系統下wsappx占用CPU資源過高?wsappx是什么?如何關閉wsappx進程?

在Windows10系統開機的時候&#xff0c;wsappx進程占用的CPU資源非常高&#xff0c;導致電腦運行速度緩慢&#xff0c;那么我們如何關閉wsappx進程&#xff0c;讓電腦加快運行速度呢&#xff1f;下面就一起來看一下操作的方法吧。 【現象】 1、先來看一下電腦剛開機的時候&…

如何通過Windows Server 2008 R2建立NFS存儲

如何通過Windows Server 2008 R2建立NFS存儲在我們日常工作的某些實驗中&#xff0c;會需要使用存儲服務器。而硬件存儲成本高&#xff0c;如StarWind之類的iSCSI軟存儲解決方案需要單獨下載服務器端程序&#xff0c;且配置比較繁瑣&#xff0c;令很多新手們很是頭疼。事實上&a…

python-windows安裝相關問題

1.python的環境配置&#xff0c;有些時候是沒有配置的&#xff0c;需要在【系統環境】-【path】里添加。 2.安裝pip&#xff1a;從官網下載pip包&#xff0c;然后到包目錄》python setup.py install 安裝 3.安裝scrapyd&#xff1a;正常使用pip3 install scrapyd安裝不起&…

hdu 1542/1255 Atlantis/覆蓋的面積

1542 1255 兩道掃描線線段樹的入門題。 基本沒有什么區別&#xff0c;前者是模板&#xff0c;后者因為是求覆蓋次數至少在兩次以上的&#xff0c;這個同樣是具有并集性質的&#xff0c;所以把cover的判斷條件更改一下就可以了qwq。 hdu1542 代碼如下&#xff1a; #include<i…

使用了JDK自帶的jconsole查看Tomcat運行情況

最近對公司的項目進行JVM調優&#xff0c;使用了JDK自帶的jconsole查看Tomcat運行情況&#xff0c;記錄下配置以便以后參考&#xff1a;首先&#xff0c;修改Tomcat的bin目錄下的catalina.bat文件&#xff0c;在JAVA_OPTS變量中添加下面四行&#xff0c;即可set JAVA_OPTS %JAV…

jvm02

java虛擬機內存管理 每個線程就是一個順序的執行單元&#xff0c;線程共享區即多個線程共享同一塊區域&#xff0c;線程獨占區即每個線程都有自己的虛擬機棧&#xff0c;本地方法棧&#xff0c;程序計數器。 程序計數器是一個比較小的內存空間&#xff0c;可以看作是當前線程所…

搭建svn管理平臺

安裝svn服務器&#xff1a;yum -y install subversion創建svn的目錄&#xff1a;mkdir -p /data/svn初始化svn目錄&#xff1a;svnadmin create /data/svnconf下的三個目錄介紹&#xff1a;authz&#xff1a;控制權限,創建用戶。密碼在passwd創建 passwd&#xff1a;密碼文件&…

Oracle dataguard 正常切換和應急切換

Oracle dataguard 正常切換和應急切換oracle dataguard提供異地容災方案,能有效的防止單點故障和提供高可用技術,這里介紹dataguard正常主備切換和應急切換&#xff08;應急切換模擬主庫出現問題無法還原,備庫脫離dataguard接管主庫對外提供服務&#xff09;1&#xff09;Oracl…

好程序員web前端分享JS引擎的執行機制

好程序員web前端分享JS引擎的執行機制&#xff0c;請先著重牢記兩點&#xff01;JS是單線程語言。JS的EventLoop是JS的執行機制。深入了解JS的執行&#xff0c;就等于深入了解JS里的eventloop。1、靈魂三問&#xff1a;JS為什么是單線程的?為什么需要異步?單線程又是如何實現…

shutil模塊、json和pickle模塊

shutil模塊&#xff1a; 高級的文件、文件夾、壓縮包處理模塊 json和pickle模塊 之前學過eval內置方法可以將一個字符串轉化成Python對象&#xff0c;但eval方法是有局限性的&#xff0c;對于普通的數據類型&#xff0c;json.loads、eval都可以使用&#xff0c;但遇到特殊類型的…

每日一問:LayoutParams 你知道多少?

前面的文章中著重講解了 View 的測量流程。其中我提到了一句非常重要的話&#xff1a;**View 的測量匡高是由父控件的 MeasureSpec 和 View 自身的 LayoutParams 共同決定的。**我們在前面的 每日一問&#xff1a;談談對 MeasureSpec 的理解 把 MeasureSpec 的重點進行了講解&a…

kuangbin專題十六 KMP擴展KMP HDU2594 Simpsons’ Hidden Talents

Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had. Marge: Yeah, what is it? Homer: Take me for example. I want to find out if I have a talent in politics, OK? Marge: OK. Homer: So I take some politician’s na…