第七篇:微信小程序的跳轉頁面

前提:建議還沒學HTML、CSS、JavaScript、JSON、vue、Ajax的兄弟姐妹們,先去把這些基礎補好過一遍,不然不好理解微信小程序

前面這一篇已經講過一次<navigator>跳轉頁面的用法了,今天詳細講解一下

回顧:

小程序導航跳轉頁面有兩種方式——>

第一種是用【<navigator>組件】直接跳轉,簡單用web角度理解就是類似直接用<a>標簽超鏈接跳轉,叫做【聲明式導航】;

第二種是用【wx.switchTab( )】跳轉,簡單用web角度理解就是類似利用JavaScript函數跳轉,叫做【編程式導航】。這個就先不講,先講第一種【聲明式導航】

一、聲明式導航

聲明式導航也分兩種

1、tabBar頁面跳轉

tabBar在【JSON配置】會講,tabBar就是小程序底部或頂部那個導航欄,如果這個頁面配置了這條導航欄,那么要跳轉到導航欄的頁面就是用這個方法

正常json那里配置了下面導航欄一點就可以跳轉

那要是我還想通過點上面主體頁面的地方跳轉到導航欄上某個頁面就這樣

代碼編寫規則如下:

url必須有'/'開頭,必須要設置open-type="switchTab",不設置沒用

<!-- 聲明式導航:導航到tabBar -->
<navigator url="/pages/16_9-grid/9-grid" open-type="switchTab">導航到tabBar</navigator>
<!-- url必須有'/'開頭!!! -->

2、非tabBar頁面跳轉

那要跳轉到不是導航欄的頁面,就得用這個方法

代碼編寫規則如下:

導航到非tabBar可以不用設置open-type,如果設置了,值只能是navigate

<!-- 聲明式導航:導航到非tabBar -->
<navigator url="/pages/17_aiAPI/aiAPI" open-type="navigate">導航到非tabBar</navigator>
<!-- 導航到非tabBar可以不用設置open-type,如果設置了,值只能是navigate -->

3、返回上一頁或多頁

在跳轉到的頁面設置【返回跳轉】

代碼編寫規則如下:

不需要寫url,直接open-type="navigateBack"

返回多頁就要設置detal,值就是返回多少頁

<!-- 返回1頁 -->
<navigator open-type="navigateBack">返回上一頁</navigator><!-- 返回多頁 -->
<!-- 返回多頁就要設置detal,值就是返回多少頁 -->
<navigator open-type="navigateBack" delta="2">返回2頁</navigator>

二、編程式導航

編程式導航就可以簡單理解:在js文件里讓它跳轉;那它跟<navigator>有啥區別?這不是多此一舉嗎?

很明顯是有區別的,你navigator只有設置這個組件才可以跳轉頁面;但是編程式導航只需要組件綁定事件就可以實現跳轉了,比如<button>、<view>、<swiper>......這些組件綁定了編程式導航,就都可以實現跳轉了,而且還可以在跳轉的時候執行其他事情

【編程式導航】的【跳轉tabBar頁面函數】和【跳轉非tabBar頁面函數】的對象參數的包含的配置屬性:

1、【編程式導航】的【跳轉tabBar頁面函數】

用wx.switchTab( {...} )函數,可以注意也就是把【聲明式導航】里【open-type="switchTap"】換成在js里寫【wx.switchTab( )】而已,效果和【聲明式導航】的【跳轉tabBar頁面函數】一樣

<!-- WXML部分 -->
<button bind:tap="goto_tabBar">跳轉第二頁</button>
//JS部分
Page({goto_tabBar(){// wx.switchTab()跳轉tabBar頁面wx.switchTab({url: '/pages/16_9-grid/9-grid',//下面這些要是沒有特殊要求的話,不寫其實也行,這里只是做個展示success: function() {console.log('跳轉成功')},fail: function() {console.log('跳轉失敗')},complete: function() {console.log('成功、失敗都會執行')}})}
})

2、【編程式導航】的【跳轉非tabBar頁面函數】

用wx.navigateTo( {...} )函數,可以注意也就是把【聲明式導航】里【open-type="navigate"】換成在js里寫【?wx.navigateTo( )】而已,效果和【聲明式導航】的【跳轉非tabBar頁面函數】一樣

<!-- WXML部分 -->
<button bind:tap="goto_navigator">跳轉非tarBar頁面</button>
//JS部分
Page({goto_navigator(){// wx.navigateTo()跳轉非tabBar的頁面wx.navigateTo({url: '/pages/17_aiAPI/aiAPI',//下面這些要是沒有特殊要求的話,不寫其實也行,這里只是做個展示success: function() {console.log('跳轉成功')},fail: function() {console.log('跳轉失敗')},complete: function() {console.log('成功、失敗都會執行')}})}
})

3、【編程式導航】的【返回頁面函數】

用wx.switchTab( {...} )函數,可以注意也就是把【聲明式導航】里【open-type="navigate"】換成在js里寫【?wx.navigateTo( )】而已,效果和【聲明式導航】的【跳轉非tabBar頁面函數】一樣

返回一頁

<!-- WXML部分 -->
<button bind:tap="backto_last">返回上一頁</button>
//JS部分
Page({//返回上一頁backto_last(){//返回上一頁的話就啥也不用寫,有個wx.navigateBack()就夠了wx.navigateBack()}
})

返回多頁

<!-- WXML部分 -->
<button bind:tap="backto_2page">返回2頁</button>
//JS部分
Page({backto_2page(){//直接返回多頁wx.navigateBack({delta: 2 //只需要多這一步,跟<navigator>組件的返回多頁一樣加一個delta})}
})

【編程式導航】的【返回頁面函數】的對象參數的包含的配置屬性:

三、導航傳參

沒什么難的知識點,一句話簡單說明:跟Ajax的帶參數網址一模一樣。只需要在網址后加一個"?",然后后面拼接參數,參數寫成"參數=參數值"形式,多個參數"&"隔開,搞定。

不管是【聲明式導航】還是【編程式導航】都是一樣,在url那改就行了

<!-- WXML部分 -->
<navigator url="/pages/17_aiAPI/aiAPI?name=CZM&age=23" open-type="navigate">導航到非tabBar</navigator>//JS部分
wx.navigateTo({url: '/pages/17_aiAPI/aiAPI?name=CZM&age=23'
)}//都是一樣的方式傳參

然后這些參數還會在onLoad函數自動獲取到,要使用它的話可以掛到data上

//JS部分
Page({data:{//可以用data來獲取頁面加載時獲取到的【參數對象】,注意是【對象】query: {}},//事件監聽函數會在跳轉到該頁面的時候,自動獲取到參數,這里就試一下把參數輸出來onLoad: function(option) {console.log(option)//因為option獲取到了參數,但是他只是局部形參,在別的函數就不能用了//那就用this.setData()把參數值掛到datathis.setData({query: option})},
//現在在別的函數通過用data的值來使用獲取到的參數值method1: function(){console.log("在別的函數輸出獲取到的參數:")console.log(this.data.query)}
})

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

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

相關文章

Lesson 1 introduction of machine /deep learning

聽課&#xff08;李宏毅老師的&#xff09;筆記&#xff0c;方便梳理框架&#xff0c;以作復習之用。本節課主要介紹了什么是機器學習&#xff0c;機器學習的類型和流程&#xff0c;用一個現實中的例子詳細地展示了整個工作流程。 1. 機器學習的定義 2. 不同的函數類型 預測數…

MyBatis 學習(四)之 SQL 映射文件

目錄 1 SQL 映射文件介紹 2 select 元素 3 insert 元素 4 update 和 delete 元素 5 sql 元素 6 parameterType 元素 7 resultType 元素 8 resultMap 元素&#xff08;重要&#xff09; 9 參考文檔 1 SQL 映射文件介紹 映射器是 MyBatis 中最復雜并且是最重要的…

【軟考中級】系統集成項目管理工程師—案例分析基礎

軟考中級——系統集成項目管理工程師 案例分析基礎 考試時間及要求 中級考試案例分析5道題&#xff0c;時間150分鐘&#xff0c;時間充裕。&#xff08;高級考試案例分析3道題【高級一般第一題都是找錯、第二題改錯、第三題默寫】&#xff0c;時間90分鐘、平均每道題花30分鐘…

Vue(3.3.4)+three.js(0.161.0)實現3D可視化地圖

一.前言 由于最近在學習three.js,所以觀摩了一下掘金&#xff0c;csdn等網站上的有關這部分的內容&#xff0c;剛好看到一個帶你入門three.js——從0到1實現一個3d可視化地圖 - 掘金 (juejin.cn)&#xff0c;再加上我的專業屬性是地理相關&#xff0c;可以說是專業對口&#xf…

Java使用ffmpeg指令實現音頻格式轉換

針對Linux環境下如何安裝ffmpeg請看上一篇文章Linux上搭建并使用ffmpeg&#xff08;Java&#xff09;-CSDN博客 public static void voiceChangeFormat(String localPath, String targetPath) {List<String> command new ArrayList<>();command.add("ffmpeg…

存儲xss實現獲取cookie(本地實戰)

實戰更能體驗收獲&#xff01;&#xff01;&#xff01; 環境準備&#xff1a; 1.phpstudy 2.dvwa靶場 實戰 首先我們在phpstudy指定的localhost網站目錄下編寫一個xss.php文件&#xff0c;內容如下&#xff1a; <?php $cookie $_GET[cookie]; $ip getenv (REMOTE_…

electron+vue3全家桶+vite項目搭建【28】封裝窗口工具類【2】窗口組,維護窗口關系

文章目錄 引入實現效果思路主進程模塊渲染進程模塊測試效果 引入 demo項目地址 窗口工具類系列文章&#xff1a; 封裝窗口工具類【1】雛形 我們思考一下窗口間的關系&#xff0c;窗口創建和銷毀的一些動作&#xff0c;例如父子窗口&#xff0c;窗口組合等等&#xff0c;還有…

【前端素材】推薦優質在線高端家具電商網頁Classi平臺模板(附源碼)

一、需求分析 1、系統定義 在線高端家具商城是一個專門銷售高端家具產品的電子商務平臺&#xff0c;旨在為消費者提供購買高品質家具的便捷渠道。 2、功能需求 在線高端家具商城是一個專門銷售高端家具產品的電子商務平臺&#xff0c;旨在為消費者提供購買高品質家具的便捷…

Maven高級(黑馬學習筆記)

Maven 是一款構建和管理 Java 項目的工具。 分模塊設計與開發 介紹 所謂分模塊設計&#xff0c;顧名思義指的就是我們在設計一個 Java 項目的時候&#xff0c;將一個 Java 項目拆分成多個模塊進行開發。 1). 未分模塊設計的問題 如果項目不分模塊&#xff0c;也就意味著所有…

node.js和electron安裝

文章目錄 一、node.js安裝1.node.js下載安裝2.設置鏡像 二、其它問題1.文件夾創建錯誤2.electron安裝錯誤 一、node.js安裝 1.node.js下載安裝 參考B站視頻node.js安裝&#xff0c;沒有按視頻中設置鏡像 2.設置鏡像 參考&#xff1a;https://npmmirror.com/ npm config se…

十八:Java8新特性

文章目錄 01、Java8概述02、Java8新特性的好處03、并行流與串行流04、Lambda表達式4.1、Lambda表達式使用舉例4.2、Lambda表達式語法的使用14.3、Lambda表達式語法的使用2 05、函數式(Functional)接口5.1、函數式接口的介紹5.2、Java內置的函數式接口介紹及使用舉例 06、方法引…

Hgame題解(第二星期)

Hgame題解&#xff08;第二星期&#xff09; Web Select More Courses 打開靶機發現是一個登陸頁面&#xff0c;根據題目提示下載弱密碼字典&#xff0c;通過BP爆破獲得用戶密碼為qwert123 登陸后進入下一個頁面&#xff0c;由于學分已滿無法選課&#xff0c;所以需要先進行…

回歸預測 | Matlab實現BiTCN基于雙向時間卷積網絡的數據回歸預測

回歸預測 | Matlab實現BiTCN基于雙向時間卷積網絡的數據回歸預測 目錄 回歸預測 | Matlab實現BiTCN基于雙向時間卷積網絡的數據回歸預測效果一覽基本介紹程序設計參考資料 效果一覽 基本介紹 1.Matlab實現BiTCN基于雙向時間卷積網絡的數據回歸預測&#xff08;完整源碼和數據&a…

推薦瑩瑩API管理系統PHP源碼

瑩瑩API管理系統PHP源碼附帶兩套模板,PHP版本要求為5.6至8.0之間&#xff0c;已測試通過的版本為7.4。 需要安裝PHPSG11加密擴展。 已測試&#xff1a;寶塔/主機親測成功搭建&#xff01; 演示地 址 &#xff1a; runruncode.com/php/19698.html 安裝說明&#xff08;適用于寶…

深入理解c指針(六)

目錄 九、函數指針數組 1、字符指針變量 2、數組指針變量 3、二維數組傳參的本質 4、函數指針變量 4.1 分析《C陷阱和缺陷》中的兩端代碼 4.2 typedef關鍵字 5、函數指針數組 6、函數指針數組的用途---轉移表 九、函數指針數組 1、字符指針變量 在指針的類型中我們知道…

教你如何判斷Java代碼中異步操作是否完成

在許多應用程序中&#xff0c;我們經常使用異步操作來提高性能和響應度。在Java中&#xff0c;我們可以使用多線程或者異步任務來執行耗時操作&#xff0c;并且在后臺處理過程完成后獲取結果。但是&#xff0c;在使用異步操作時&#xff0c;我們通常需要知道異步任務何時完成&a…

【C++精簡版回顧】15.繼承派生

1.繼承派生的區別 繼承&#xff1a;子繼父業&#xff0c;就是子類完全繼承父類的全部內容 派生&#xff1a;子類在父類的基礎上發展 2.繼承方式 1.public繼承為原樣繼承 2.protected繼承會把public繼承改為protect繼承 3.private繼承會把public&#xff0c;protected繼承改為pr…

怎么摳圖把把人物扣下來?簡單快捷的摳圖方法

相信很多新手小白在初入設計行業時&#xff0c;對于摳圖怎么把人物扣下來都是一頭霧水。摳圖作為設計中常用的一種技術&#xff0c;能夠幫助我們快速提取圖片中的某個部分&#xff0c;進行合成或者修改。對于老手來說&#xff0c;摳圖或許是再熟悉不過的操作&#xff0c;但對于…

【C++】仿函數與函數指針:C++中的強大工具

文章目錄 什么是函數指針&#xff1f;函數指針的基本語法&#xff1a; 什么是仿函數&#xff1f;仿函數的基本用法&#xff1a; 仿函數與函數指針的比較應用場景代碼舉例函數指針示例仿函數示例定義排序規則舉例使用函數指針使用仿函數哪一個更好&#xff1f; 結論 在C編程中&a…

c語言---數組(超級詳細)

數組 一.數組的概念二. 一維數組的創建和初始化2.1數組的創建2.2數組的初始化錯誤的初始化 2.3 數組的類型 三. 一維數組的使用3.1數組的下標3.2數組元素的打印3.2數組元素的輸入 四. 一維數組在內存中的存儲五. 二維數組的創建5.1二維數組的概念5.2如何創建二維數組 六.二維數…