uniapp微信小程序无法获取Vue.prototype值的解决方法

问题描述:

在使用uniapp框架开发微信小程序时,有时候会遇到Vue.prototype里放的值无法在小程序里获取的问题,这是因为uniapp的小程序使用的是微信原生小程序的组件库,因此Vue.prototype的值无法直接引入到小程序里。但是我们可以通过一些方法绕过这个问题。

解决方法:

  1. 在uniapp中引入wx对象,使用wx.$vm来代替Vue.prototype

示例代码:

在主入口文件main.js中添加以下代码:

import Vue from 'vue'
import App from './App'

Vue.prototype.$eventHub = new Vue()
wx.$vm = new Vue({
    el: '#app',
    render: h => h(App)
})

在vue组件中可以这样使用:

this.$eventHub.$off(eventName, callback)

替换为:

wx.$vm.$emit(eventName, args)
  1. 在uniapp中使用$dispatch和$broadcast来代替Vue.prototype的实现方式

示例代码:

可以在Vue组件中使用$emit来触发布局组件通过$on绑定好的事件或者通过$dispatch向所有的祖先组件广播一个事件

在使用过程中可以结合使用$broadcast和$dispatch来实现事件的传递。可以在主入口文件main.js中写一个空的Vue实例,用它来保存事件的派发在监听。如下代码:

import Vue from 'vue'
Vue.prototype.$bus = new Vue()

在其他的Vue组件中,可以通过$dispatch来派发事件,如下代码:

mounted() {
    this.$dispatch('sendMessage', params)
}

而在父组件中,可以通过$on来监听事件,如下代码:

export default {
    mounted() {
        this.$bus.$on('sendMessage', params => {
            // do something
        })
    }
}

通过$dispatch和$broadcast来实现组件之间的事件传输,可以更好的兼容小程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:uniapp微信小程序无法获取Vue.prototype值的解决方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue条件循环判断+计算属性+绑定样式v-bind的实例

    下面我来详细讲解一下“Vue条件循环判断+计算属性+绑定样式v-bind的实例”。 确定需求 在使用Vue进行开发的过程中,经常会用到条件循环判断、计算属性以及绑定样式这三个功能。需要在开发过程中灵活运用,通过组合使用,达到更好的效果。 条件循环判断 Vue中的条件循环指令有v-if和v-for两个。其中,v-if指令可以根据对象的值对元素进行展示或者隐藏。…

    Vue 2023年5月27日
    00
  • vue3生命周期原理与生命周期函数简单应用实例分析 原创

    Vue3生命周期原理与生命周期函数简单应用实例分析 Vue3的生命周期和Vue2有些不同,但是原理和应用都是相似的。本文将从原理和应用两个方面分别讲解Vue3的生命周期。 原理 Vue3的生命周期可分为三个阶段:beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeUnmoun…

    Vue 2023年5月28日
    00
  • 详解vue-cli下ESlint 配置说明

    下面我将为你提供详细的“详解vue-cli下ESlint 配置说明”的攻略。 1. 前言 ESLint 是一个可以帮助我们约束代码风格的工具,Vue CLI 集成了 ESLint,我们可以直接在 Vue 项目里进行代码风格检查。如果要通过 ESLint 实现代码的自动修复功能,需要借助于 Prettier 这个代码格式化工具。 2. ESLint 配置文件 …

    Vue 2023年5月28日
    00
  • vue初尝试–项目结构(推荐)

    下面是针对“Vue初尝试–项目结构(推荐)”的完整攻略: 1. 什么是Vue Vue是一套用于构建用户界面的渐进式框架。与其他大型框架不同的是,Vue被设计为可以逐层应用。Vue的核心库只关注视图层,非常容易学习和集成,同时也可以通过插件或结合其他库来构建完整的单页应用。 2. Vue项目结构推荐 下面,我们来看一下Vue项目的结构推荐: ├── buil…

    Vue 2023年5月29日
    00
  • Vue的缓存方法示例详解

    Vue的缓存方法示例详解 Vue.js 是一款优秀的 JavaScript 前端框架,提供了大量的工具和组件,使得开发者更加便捷和高效地构建 Web 应用程序。其中,缓存方法是 Vue.js 中一个非常重要的特性,可以大幅提升应用程序的性能和用户体验。本文将详细介绍 Vue 缓存方法的应用和示例,主要包括:内置缓存方法、手动缓存方法、路由缓存方法、组件缓存方…

    Vue 2023年5月27日
    00
  • 详解mpvue中小程序自定义导航组件开发指南

    “详解mpvue中小程序自定义导航组件开发指南”的完整攻略包括以下几个步骤: 1. 创建自定义组件 创建自定义导航组件的方法与创建普通自定义组件类似。在components目录下新建 cus-nav 文件夹,并在该文件夹下创建 cus-nav.vue 文件。 <template> <view> <view class=&quot…

    Vue 2023年5月27日
    00
  • vue+element+oss实现前端分片上传和断点续传

    让我来详细讲解一下“vue+element+oss实现前端分片上传和断点续传”的完整攻略。 前置知识 在开始之前,我们需要确保您已经掌握以下技能: vue.js框架 element-ui组件库 Javascript 阿里云OSS 准备工作 在开始项目之前,您需要准备以下工具: npm包管理器 vue-cli脚手架 项目搭建 首先,我们需要使用vue-cli创…

    Vue 2023年5月28日
    00
  • 一文教会你如何运行vue项目

    一文教会你如何运行Vue项目的完整攻略 如果你是一位Vue开发者,那么运行Vue项目应该是你每天都会做的事情之一。而要运行Vue项目,你需要了解Vue的环境和插件,才能保证项目正常运行。在这篇文章中,我将为您提供一个完整的攻略,以帮助您运行您的Vue项目。 步骤1:安装Node.js Node.js是一种流行的JavaScript运行时环境,可用于构建基于服…

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