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日

相关文章

  • JavaScript 正则表达式与字符串查找方法

    关于“JavaScript 正则表达式与字符串查找方法”的攻略,可以分为以下三部分进行讲解。 一、正则表达式 1.1 基本语法 正则表达式是一个字符串模式,用于匹配和操作文本。在 JavaScript 中,可以使用两种方式创建正则表达式:字面量和构造函数。 字面量的形式为 /pattern/flags,其中 pattern 表示匹配的模式,flags 表示正…

    JavaScript 2023年5月28日
    00
  • 深入理解JavaScript中Ajax

    “深入理解JavaScript中Ajax”的完整攻略如下: 理解Ajax Ajax(Asynchronous JavaScript and XML)即异步JavaScript和XML,可以实现异步服务器调用。它能在不重新加载整个页面的情况下更新页面的部分内容,从而提高网页的交互体验。 Ajax的核心用到了XMLHttpRequest对象,它可以使用XMLHt…

    JavaScript 2023年5月18日
    00
  • Vue3+Element-Plus 实现点击左侧菜单时显示不同内容组件展示在Main区域功能

    一、准备工作 首先需要创建一个基于Vue3的项目,可以使用Vue CLI来创建,并安装Element-Plus插件。具体细节可以参考Vue CLI和Element-Plus的官方文档。 二、菜单组件的实现 菜单组件采用Element-Plus自带的菜单组件el-menu,需要在菜单组件中引入需要显示的组件,并在点击菜单时将组件插入到Main区域中。 实现的大…

    JavaScript 2023年6月10日
    00
  • 详细聊聊浏览器是如何看闭包的

    浏览器是如何看闭包的? 首先,让我们来回顾一下什么是闭包。闭包是在定义函数时创建的一种特殊作用域。可以访问父级作用域中定义的变量和函数,即使父级作用域已经被销毁了。这使得我们可以创建私有变量和函数,也可以用于实现某些高级特性,例如函数记忆和柯里化等。 那么,当浏览器解析Javascript代码时,是如何看待闭包的呢?以下是完整攻略: 函数作用域 Javasc…

    JavaScript 2023年6月10日
    00
  • javascript 二进制运算技巧解析

    JavaScript 二进制运算技巧解析 JavaScript 中有一些二进制运算符可以用来操作数值的二进制形式,包括按位与、按位或、按位异或、左移、右移、无符号右移等。这些运算符可以用于进行一些高效的位运算操作,下面将会为大家详细讲解这些二进制运算技巧的使用方法及示例。 按位与(&)运算符 按位与运算符的符号为“&”,对于两个二进制位数,若…

    JavaScript 2023年5月19日
    00
  • web性能优化之javascript性能调优

    Web性能优化是Web开发中非常重要的一环,其中JavaScript性能调优更是至关重要。下面是JavaScript性能调优的完整攻略: 1. 代码优化 1.1 压缩和混淆 代码的压缩和混淆可以有效减小资源文件的大小,提高页面加载速度。常用的工具有UglifyJS,Google Closure Compiler等。 1.2 避免不必要的全局变量 全局变量会影…

    JavaScript 2023年5月28日
    00
  • 改版了网上的一个js操作userdata

    改版了网上的一个js操作userdata,意味着我们要掌握如何在 JavaScript 中使用 localStorage API 操作本地存储空间。下面将从以下四个方面讲解完整攻略: localStorage 的概念和用法 基础操作:setItem 和 getItem 复杂数据结构的存储和读取 注意事项 1. localStorage 的概念和用法 loca…

    JavaScript 2023年6月11日
    00
  • 一些相见恨晚的 JavaScript 技巧

    下面是对于“一些相见恨晚的 JavaScript 技巧”的完整攻略: 一些相见恨晚的 JavaScript 技巧 JavaScript 作为一种非常灵活的编程语言,我们可以使用其提供的一些技巧来更加高效地开发。下面罗列了一些我认为在实际开发中可能相见恨晚的 JavaScript 技巧,供大家参考。 使用 Array.prototype.reduce() 来替…

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