vue3获取当前组件实例的 getCurrentInstance 方法
vue3获取当前组件实例的 getCurrentInstance 方法Vue3获取当前组件实例的 getCurrentInstance 方法上 ctx 生产获取不到 上面的全局方法其实这个 ctx 就是为了便于在开发模式下通过控制台检查的,生产环境,无法获取全局上挂载的方法。不要依赖 ctx 方法去获取组件实例来完成一些主要功能,否则在项目打包后会报错。解决办法是用proxy代替ctx.代码如下v
·
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;
};
}
希望此文章能帮助到你~~~
更多推荐
已为社区贡献21条内容
所有评论(0)