怎么访问vue 组件内部的this

有个A.vue组件 引用了外部的js
inmport JS from '自己写的外部js,放公用函数'
请问怎么在这个JS中访问到A.vue 的this
(已解决)
谢谢各位的思路
我在外面
var _this = this
把_this传进去就可以了

在外部js文件打印这个_this
控制台可以看到

{default: {…}, __esModule: true}
default
:
beforeCreate
:
[ƒ]
beforeDestroy
:
[ƒ]
components
:
{XButton: {…}, Box: {…}, GroupTitle: {…}, Group: {…}, Flexbox: {…}, …}
computed
:
{toAddr: {…}}
data
:
ƒ data()
methods
:
{showMap: ƒ, getSelectArr: ƒ}
mounted
:
ƒ mounted()
render
:
ƒ ()
staticRenderFns
:
(2) [ƒ, ƒ]
watch
:
{fromChildSelectObj: ƒ}
_Ctor
:
{0: ƒ}
__file
:
"E:XXXX"
_scopeId
:
"data-v-68415ad1"
__proto__
:
Object
__esModule
:
true
__proto__
:
Object
阅读 6.4k
8 个回答

A.vue 初始化的时候,调用下 外部js的某个方法(需要自己写),把this传递过去就好了

邀请了我,但我看不太明白你的问题 ,
要不你把this 当函数参数传进去?

引入的 js 定义的方法,通过传参的方式
比如:
export function dosomething(vueCase) {
console.log(vueCase)
}

import 进来后

dosomething(this)

调用方法时候传参呗(this)=>{}

const obj = {
  data() {},
  methods: {},
  ...
}
export default obj;

this就算obj

调用JS里方法的时候,JS.XXX.call(this)

既然是定义在外部的方法,那么相对来说复用性也该是有的吧,建议使用call,apply在使用时动态改变该函数的作用域。

common.js

 test(self){
        if(self.alert){
            self.alert('component function alert');
        }
    }

XXX.vue

 created() {
            common.test(this);
        },
  methods:{      
         alert(value) {
                alert(value);
            }
        }

这不是很简单吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题