首頁 > web前端 > uni-app > uniapp怎麼實現頁面跳轉並傳值

uniapp怎麼實現頁面跳轉並傳值

PHPz
發布: 2023-04-27 09:34:15
原創
3067 人瀏覽過

隨著行動互聯網的發展,APP的開發得到了一定的普及,APP的開發有許多技術困難,其中頁面的跳躍和傳參是必須掌握的技術之一。而uniapp作為多端開發框架,其頁面跳躍和傳值的實作更加簡單方便。本文將重點放在uniapp頁面上跳轉並傳值的方法。

一、uniapp頁面跳轉

uniapp頁面跳轉有兩種方式,一種是透過底部的tab欄實現頁面跳轉,另一種是透過程式碼實現頁面的跳轉。

1.透過底部tab欄實現頁面跳躍

在uniapp框架中,頁面的跳躍可以透過uniapp內建的底部tab欄實現。在pages.json檔案中配置底部tab欄,在tab欄中新增需要跳轉的頁面路徑即可實現頁面跳躍。

下面是一個簡單的pages.json檔案配置底部tab欄的程式碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

{

  "pages": [

    //tab栏页面

    {

      "path""pages/index/index",

      "name""index",

      "iconPath""static/img/tab-home.png",

      "selectedIconPath""static/img/tab-home-selected.png"

    },

    {

      "path""pages/mine/mine",

      "name""mine",

      "iconPath""static/img/tab-mine.png",

      "selectedIconPath""static/img/tab-mine-selected.png"

    }

  ],

  "globalStyle": {

    "navigationBarTitleText""uni-app"

  },

  "tabBar": {

    "borderStyle""black",

    "backgroundColor""#ffffff",

    "color""#333",

    "selectedColor""#007aff",

    "list": [

      {

        "pagePath""pages/index/index",

        "text""首页",

        "iconPath""static/img/tab-home.png",

        "selectedIconPath""static/img/tab-home-selected.png"

      },

      {

        "pagePath""pages/mine/mine",

        "text""我的",

        "iconPath""static/img/tab-mine.png",

        "selectedIconPath""static/img/tab-mine-selected.png"

      }

    ]

  }

}

登入後複製

2.透過程式碼實現頁面跳躍

透過程式碼實現頁面跳轉需要用到uniapp框架提供的uni.navigateTo和uni.redirectTo方法。前者是保留目前頁面,跳到應用程式內的某個頁面,而後者是關閉目前頁面,跳到應用程式內的某個頁面。

下面是透過程式碼實現頁面跳躍的範例程式碼:

1

2

3

4

5

6

7

8

9

10

11

12

//保留当前页面,并跳转到某个页面

uni.navigateTo({

    url: 'pages/detail/detail?id=123'

});

 

//关闭当前页面,并跳转到某个页面

uni.redirectTo({

    url: 'pages/login/login'

});

 

//返回上一页面

uni.navigateBack();

登入後複製

二、uniapp頁面傳值

在某些場景下,我們需要將資料從一個頁面傳遞到另一個頁面。對於uniapp頁面傳值,常使用前端常見的兩種方式:URL傳參和Vuex狀態管理。

1.URL傳參

在uniapp中,使用URL傳參的方式也是比較常見的,我們可以在跳到目標頁面時,將需要傳遞的資料作為參數拼接在URL位址上,然後在目標頁面中透過$Route物件進行取得。

下面是一個簡單的URL傳參的範例程式碼:

//跳到目標頁面,並將id作為參數傳遞
uni.navigateTo({
 url : '/pages/detail/detail?id=12'
});

//在目標頁面中取得參數
export default {
 data () {

1

2

3

return {

  id: ''

}

登入後複製

},
 onLoad (options) {

1

this.id = options.id

登入後複製

}
}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

2.Vuex状态管理

 

另一种方式是使用Vuex状态管理。通过Vuex将数据存储在全局store对象中,从而实现多个页面间数据的共享。

 

下面是一个Vuex状态管理的示例代码:

 

//store.js

import Vue from 'vue'

import Vuex from 'vuex'

 

Vue.use(Vuex);

 

const store = new Vuex.Store({

  state: {

    name: 'uniapp'

  },

  mutations: {

    setName (state, name) {

      state.name = name;

    }

  }

});

 

export default store;

 

//需要传递数据的页面

import { mapState } from 'vuex';

 

export default {

  data() {

    return {

      inputName: ''

    };

  },

  methods: {

    setName() {

      this.$store.commit('setName', this.inputName);

    }

  }

};

 

//需要获取数据的页面

import { mapState } from 'vuex';

 

export default {

  computed: mapState({

    name: state => state.name

  })

};

登入後複製

上述程式碼中,首先定義了一個全域的store對象,並定義了一個state變數和一個mutations方法,用於更新state中的資料。當需要傳遞資料的頁面需要修改資料時,呼叫mutations方法更新state中的資料。當需要取得資料的頁面需要取得資料時,透過計算屬性呼叫mapState方法來取得state中的資料。

總結:

以上是uniapp頁面跳轉並傳值的兩種方式,URL傳參和Vuex狀態管理,在應用開發過程中,應根據業務需求選擇合適的方式進行頁面跳轉和資料傳遞,以實現高效、穩定和可維護的應用程式。

以上是uniapp怎麼實現頁面跳轉並傳值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板