<>vue3获取当前组件实例的 getCurrentInstance 方法
Vue3获取当前组件实例的 getCurrentInstance 方法上 ctx 生产获取不到 上面的全局方法
其实这个 ctx 就是为了便于在开发模式下通过控制台检查的,生产环境,无法获取全局上挂载的方法。不要依赖 ctx
方法去获取组件实例来完成一些主要功能,否则在项目打包后会报错。解决办法是用proxy代替ctx.
代码如下
vue组件中调用全局方法
import { getCurrentInstance } from "vue"; setup() { const state = reactive({
proxy:null }) onMounted(() => { const { proxy } = getCurrentInstance(); let temp
= proxy.getDate(0); //调用全局方法 console.log(temp) // 模拟获取当前时间 state.proxy = proxy;
}); }
全局方法
base.js
exports.install = function(Vue) { Vue.prototype.getDate = function(n) { var n =
n; var d = new Date(); var year = d.getFullYear(); var mon = d.getMonth() + 1;
var day = d.getDate(); if (day <= n) { if (mon > 1) { mon = mon - 1; } else {
year= year - 1; mon = 12; } } d.setDate(d.getDate() - n); year = d.getFullYear()
; mon = d.getMonth() + 1; day = d.getDate(); let s = year + "-" + (mon < 10 ?
"0" + mon : mon) + "-" + (day < 10 ? "0" + day : day); return s; }; }
希望此文章能帮助到你~~~