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>

浙公网安备 33010602011771号