uniapp页面间传参的几种方法实例总结

下面来详细讲解一下“uniapp 页面间传参的几种方法实例总结”。

uniapp 页面间传参的几种方法实例总结

一、通过URL进行传参

通过URL进行传参,是最常见也最简单的方法。通过修改URL中的参数,实现页面之间数据的传递。

一般来说,我们使用vue-router进行URL的跳转,可以通过$route对象来获取URL中的参数,如下所示:

// 跳转到目标页面并传递参数
this.$router.push({
    path: '/target',
    query: { id: 123, name: 'John' }
})

// 目标页面中获取参数
this.$route.query.id   // 输出:123
this.$route.query.name // 输出:John

这种方式的优点是使用简单、易于理解,缺点是不能传递复杂对象,只能传递简单的值类型。

二、使用vuex进行传参

vuex是vue.js的状态管理器,它可以用来管理全局状态,实现不同组件之间的数据共享。

  1. 首先,在store文件夹中新建一个index.js文件,定义statemutationsactions等状态管理对象。
// store/index.js

export default new Vuex.Store({
    state: {
        username: '',
        age: 0
    },
    mutations: {
        setUserName(state, name) {
            state.username = name
        },
        setAge(state, age) {
            state.age = age
        }
    },
    actions: {
        updateUserName({ commit }, name) {
            commit('setUserName', name)
        },
        updateAge({ commit }, age) {
            commit('setAge', age)
        }
    }
})
  1. 在需要传参的组件中,调用$store对象,通过this.$store.committhis.$store.dispatch方法来更新、获取全局状态。
// components/UserName.vue

<template>
    <div>
        <span>用户名:</span>{{ username }}
        <button @click="updateName">修改</button>
    </div>
</template>

<script>
    export default {
        computed: {
            username() {
                return this.$store.state.username
            }
        },
        methods: {
            updateName() {
                this.$store.dispatch('updateUserName', 'Tom')
            }
        }
    }
</script>

这种方式的优点是可以传递复杂对象,实现数据共享,缺点是需要安装vuex插件,使用稍微复杂。

三、使用全局变量进行传参

在uniapp中,可以使用uni.$emit方法和全局变量(比如uni.$app)来实现页面间的通信。

  1. 定义全局变量,并修改其属性值:
// App.vue

<template>
    <view>
        <uni-nav-bar title="首页"></uni-nav-bar>
        <router-view></router-view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                username: ''
            }
        },
        methods: {
            setName(name) {
                this.username = name
            }
        },
        mounted() {
            uni.$app = this
        }
    }
</script>
  1. 在目标页面中,调用全局变量的方法来修改属性值,实现数据传递。
// components/UserName.vue

<template>
    <div>
        <span>用户名:</span>{{ username }}
        <button @click="updateName">修改</button>
    </div>
</template>

<script>
    export default {
        computed: {
            username() {
                return this.$app.username
            }
        },
        methods: {
            updateName() {
                this.$app.setName('Tom')
            }
        }
    }
</script>

这种方式的优点是使用简单、易于理解,缺点是会造成全局变量污染,不利于代码的维护和复用。

以上是关于uniapp 页面间传参的几种方法实例总结,希望可以帮助到读者。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:uniapp页面间传参的几种方法实例总结 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JS获取鼠标坐标位置实例分析

    JS获取鼠标坐标位置实例分析 在web开发中,获取鼠标当前位置的坐标是一个很常见的需求,本文将介绍如何利用JavaScript获取鼠标的坐标位置,并且提供实例以供参考。 一、利用event对象获取鼠标坐标 当鼠标移动时,事件对象记录了当前鼠标的坐标位置,因此我们可以通过事件对象来获取。 要获取事件对象,我们首先需要定义一个事件处理程序: // 定义事件处理程…

    JavaScript 2023年6月11日
    00
  • es6新特性之 class 基本用法解析

    “es6新特性之 class 基本用法解析”是用于Javascript语言中的类定义机制。下面详细讲解class基本用法解析,包括类的定义、继承、静态方法、getters/setters等。 1.类定义 ES6的类定义机制为Javascript中引入了面向对象编程的思想,具有类似其他面向对象语言的类定义能力。通过这种方式,可以将代码分解为类,类似于函数定义的…

    JavaScript 2023年6月11日
    00
  • 弱类型语言javascript中 a,b 的运算实例小结

    为了理解“弱类型语言javascript中 a,b 的运算实例”,需先了解JS的数据类型。 JS的7种数据类型分为两种类型:原始类型和引用类型。- 原始类型:数字(Number)、字符串(String)、布尔(Boolean)、null、undefined、Symbol- 引用类型:对象(Object)、数组(Array)、函数(Function) JS中的…

    JavaScript 2023年6月10日
    00
  • JavaScript数组排序功能简单实现

    下面是详细的“JavaScript数组排序功能简单实现”的攻略。 一、JavaScript数组排序方法 在JavaScript中,可以使用sort()方法对数组进行排序。sort()方法默认将数组元素转换为字符串后按照字符顺序排序,因此要对数字进行排序,需要提供一个排序函数。 1. sort()方法 sort()方法不接受任何参数,对原数组进行排序,并返回排…

    JavaScript 2023年5月27日
    00
  • JSON.parse处理非标准Json数据出错的解决

    当我们使用JSON.parse()解析JSON格式的数据时,如果数据格式非标准的话,就有可能会出现报错现象。 例如我们有一个非标准的JSON格式数据如下: { name: "Tom", age: 28 } 使用JSON.parse()时会报错,错误信息如下: Uncaught SyntaxError: Unexpected token n…

    JavaScript 2023年5月27日
    00
  • 使用JavaScript获取电池状态的方法

    获取电池状态是Web开发中比较常见的需求之一,可以通过JavaScript获取电池状态,从而更好地帮助用户管理电池电量。 示例一:使用Battery API获取电池状态 在现代浏览器中,我们可以通过使用Battery API获取电池状态。首先,需要检测浏览器是否支持Battery API: if (‘getBattery’ in navigator) { /…

    JavaScript 2023年6月11日
    00
  • 正则表达式练习器

    正则表达式练习器是一款可以帮助用户练习正则表达式基础知识和技能的在线工具。下面是针对这款工具的完整攻略: 注册和登录 访问正则表达式练习器的网站,点击浏览器页面上方的“注册”按钮,填写注册表单并提交。用户名和密码必须至少包含一个数字和一个大写字母,密码长度至少为8个字符。注册成功后,你可以使用注册的用户名和密码进行登录。 访问正则表达式练习器的网站,点击浏览…

    JavaScript 2023年6月11日
    00
  • 基于JS脚本语言的基础语法详解

    基于JS脚本语言的基础语法详解 介绍 JavaScript(简称JS)是一种脚本语言,常用于在Web浏览器中编程,用于处理交互式的前端逻辑。随着Node.js的流行,JS也在后端得到了广泛应用。本文将详细讲解JS的基础语法,包括变量、运算符、控制流、函数、对象等内容。 变量 在JS中,可以使用关键词var、let、const声明变量。其中,var是ES5引入…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部