vue:.js 文件获取到 .vue 文件中的 this

简介: vue:.js 文件获取到 .vue 文件中的 this

一、背景

在js文件 abc.js   获取到   abc.vue   的this

作用:abc.js如果要使用 axios 等场景,这个时候需要使用到 this。

二、sendThis 方法实现

2.1、abc.js定义 sendThis 方法

let vm = null
export const sendThis = ( _this )=> {
    vm = _this;
};

2.2、abc.vue 在created() 声明周期 传递 this

2.2.1、引入sendThis方法

import { sendThis } from '@/const/abc.js'

2.2.2、created() 生命周期传递this

created() {
    sendThis(this)
}

2.3、在abc.js中使用

export const form = [
  {
    key: 'name',
    title: '请输入名字',
    type: 'select',
    options: [],
    value: '',
    attr: {
      placeholder: '请输入名字',
      filterable: true,
      remote: true,
      'remote-method': (query) => {
        const cur = vm.form.find((item) => item.key === 'name');
        vm.$axios({
          method: 'post',
          url: url,
          data: {
            name: query,
          },
        })
          .then((res) => {})
        }
    }
]

经过测试,成功。

三、abc.vue 赋值给对应的属性

3.1、abc.js

export const form = [
  {
    key: 'name',
    title: '请输入名字',
    type: 'select',
    options: [],
    value: '',
    attr: {
      placeholder: '请输入名字',
      filterable: true,
      remote: true,
      'remote-method': ''
    }
]

3.2、abc.vue 引入 form

import { form } from '@/const/abc.js'

3.3、赋值

created() {
    this.form[0].attr['remote-method'] = this.remoteMethod;
},
method: {
    remoteMethod(){
        // do something
    }
}

经过测试成功。

四、.call() 方法

4.1、abc.js

export const form = () => [
  {
    key: 'name',
    title: '请输入名字',
    type: 'select',
    options: [],
    value: '',
    attr: {
      placeholder: '请输入名字',
      filterable: true,
      remote: true,
      'remote-method': (query) => {
        const cur = vm.form.find((item) => item.key === 'name');
        vm.$axios({
          method: 'post',
          url: url,
          data: {
            name: query,
          },
        })
          .then((res) => {})
        }
    }
]

4.2、abc.vue 引入 form

import { form } from '@/const/abc.js'

4.3、 调用call方法

data(vm){
    return {
        formData: this.form.call(vm, vm)
    }
}

这时候我们把this传递了过去,配置文件中可以使用this了。

五、欢迎交流指正,关注我,一起学习。

相关文章
|
2天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
23 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
4月前
|
JavaScript 前端开发 内存技术
js文件的入口代码及需要入口代码的原因
js文件的入口代码及需要入口代码的原因
63 0
|
1月前
|
JavaScript 前端开发 API
Next.js 实战 (六):如何实现文件本地上传
这篇文章介绍了在Next.js中如何实现文件上传到本地的方法。文章首先提到Next.js官方文档中没有提供文件上传的实例代码,因此开发者需要自行实现,通常有两种思路:使用Node.js原生上传或使用第三方插件如multer。接着,文章选择了使用Node.js原生上传的方式来讲解实现过程,包括如何通过哈希值命名文件、上传到指定目录以及如何分类文件夹。然后,文章展示了具体的实现步骤,包括编写代码来处理文件上传,并给出了代码示例。最后,文章通过一个效果演示说明了如何通过postman模拟上传文件,并展示了上传后的文件夹结构。
|
3月前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
61 4
|
3月前
|
JavaScript 前端开发 开发者
JavaScript框架React vs. Vue:一场性能与易用性的较量
JavaScript框架React vs. Vue:一场性能与易用性的较量
66 0
|
4月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
269 0
|
4月前
|
JavaScript
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
93 0
|
4月前
|
JavaScript 前端开发
前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
|
2月前
|
JavaScript
vue使用iconfont图标
vue使用iconfont图标
147 1
|
6天前
|
移动开发 JavaScript API
Vue Router 核心原理
Vue Router 是 Vue.js 的官方路由管理器,用于实现单页面应用(SPA)的路由功能。其核心原理包括路由配置、监听浏览器事件和组件渲染等。通过定义路径与组件的映射关系,Vue Router 将用户访问的路径与对应的组件关联,支持哈希和历史模式监听 URL 变化,确保页面导航时正确渲染组件。

热门文章

最新文章