vue 内部this变了 引入js_在被vue组件引用的 js 文件里获取组件实例this

思路: 通过调用函数 把 组件实例this  传递 到 被应用的 js文件里

实例:

文件结构

在SendThis.vue 文件中引用 了modalConfig.js

import modalConfig from './modalConfig'

我们只要在 modalConfig.js文件里定义个函数和一个变量(用来存this)即可

//用来获取 调用此 js的vue 组件 实例 (this)

let vm = null;

const sendThis= ( _this )=>{

vm=_this;

};

exportdefault{

sendThis,//暴露函数

drawer: {//这里是测试代码, 假设这里会有其他暴露的变量

columns: [

{

title:'Name',

key:'name'},

{

title:'Age',

key:'age'},

{

title:'Address',

key:'address'},

{

title:'操作',

render: (h, params)=>{return h('a',{

on: {

click: ()=>{/*如果这里要使用 sendThis 实例 this*/

//this.handleShowDrawer();

//console.log(vm); //可以拿到组件 实例 了

vm.handleShowDrawer(); //调用组件实例中的函数

}

}

},'抽屉');

}

}

]

},

}

在 SendThis.vue 问中定义的handleShowDrawer函数

methods: {//这个函数会在 modalConfig.js 文件中触发

handleShowDrawer(){this.showDrawer = true;

},//把 modalConfig.js的 drawer.columns 赋值 给 this.columns1

handleTableColumn(){

let { columns }=modalConfig.drawer;this.columns1 =columns;

}

},

下面我们只要在钩子函数中 调用 modalConfig.js 的 sendThis 方法, 把this传过去即可了

mounted() {//发送this 到 js 文件里

modalConfig.sendThis(this);

}

此时:  modalConfig.js  中 的 vm 就是 SendThis.vue 文件中的 this了。

---------------------------------------

还用一种方法是你把 一些属性和方法挂在到 vue实例原型上了, 可以在 某个js文件中这样拿到vue 实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值