uni-app中利用App.Vue定制全局变量、全局函数

条件: vue setup 

在uni-app项目中,App.vue与其它页面等同于父组件与子组件的关系。

所以我们可以利用这点,采用provide的依赖注入方式,实现全局变量或全局函数。

 

 一、定义APP的全局变量pageTitle,并提供修改它的方法:

定义全局变量及函数(App.vue)

// 定义全局变量
var pageTitle = ref('这是默认的站点标题')

// 获取全局变量值
provide('pageTitle', readonly(pageTitle))

// 修改全局变量方法
provide('setPageTitle', val => {
    pageTitle.value = val
})

 

页面中取值与修改值

<template>
    <view>{{pageTitle}}</view>
    <button @tap="modifyTitle()">点击修改标题</button>
</template>

<script setup>
    import {
        ref,
        inject
    } from 'vue'

    // 注意,inject必需放置在setup内
    const pageTitle = inject('pageTitle') // 取值。这里pageTitle与全局变量不冲突
    var setPageTitle = inject('setPageTitle') // 赋值方法

    function modifyTitle(){
        // var setPageTitle = inject('setPageTitle') 错误写法,因为inject只能放在setup内定义
        setPageTitle('这是新标题')
    }
</script>

 

posted @ 2022-09-12 16:06  1024记忆  阅读(5049)  评论(0编辑  收藏  举报