如何从 Vue APP 外部调用/初始化 Vue 方法

Posted

技术标签:

【中文标题】如何从 Vue APP 外部调用/初始化 Vue 方法【英文标题】:How to call/initlialize a vue method from outside of the Vue APP 【发布时间】:2020-05-15 14:38:39 【问题描述】:

我有一个安装在现有网站页面中的应用程序。为了初始化应用程序,我在我的 Vue 应用程序中有一个按钮来切换/启动实际的 Vue 逻辑。

这一切都非常简单,页面上出现一个按钮,单击它,应用程序逻辑和方法都变得生动起来。

<template>
  <button @click.prevent="toggle">Click me</button>
</template>
<script>

export default 
  computed: 
    isBurgerActive() 
        return this.$store.getters.getIsNavOpen;
    
  ,
  methods: 
    toggle()  <----- CALL THIS METHOD OUTSIDE OF VUE
      this.$store.dispatch('toggleNav');
      this.$store.dispatch('getProduct');
    
      

</script>

我想要做的是用一个不在 Vue 应用程序中的按钮来初始化这个应用程序。本质上是说点击 Vue 应用程序外部的按钮,初始化 toggle() 方法并开始整个过程​​。

这可能吗?

【问题讨论】:

所以你想在 Vue 空间中单击一个按钮来启动应用程序?我不明白,你为什么大喊大叫? 为了更好的上下文,但现在那里很好,很凉爽。是的,希望在 Vue APP 逻辑之外有一个点击按钮,它只是启动 Vue 应用程序。目前,页面加载完毕,然后Vue需要加载来获取按钮来启动toggle方法。就像进入 Vue 并从 Vue 外部调用方法一样。不确定这是否可能。 ***.com/questions/40759731/… 我认为这与我想要的密切相关,但我使用的是 Vue CLI,他们使用的是 Vue CDN 第一步:首页只有一个按钮,没有加载js或者vue。第 2 步:单击该按钮,启动 vue 并点击该功能之一。我说的对吗? 有 JS,但是 Vue 作为 APP 加载到 id="app" 页面是普通的 html,CSS,JS。尝试使用普通JS触发切换并启动应用 【参考方案1】:

如果将组件分配给变量。您可以调用该变量的方法。实际上,您可以从该变量访问 vue 的其他属性(例如:refs、data)。

试试下面的片段:

var app = new Vue(
  el: "#app",
  data() 
    return 
      isActive: false,
    
  ,
  computed: 
    isBurgerActive() 
        return this.isActive ? 'active':'inactive'
    
  ,
  methods: 
    toggle() 
      this.isActive = !this.isActive;
    
  ,
)

document.getElementById('btn').addEventListener("click", function() 
	app.toggle();
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div>
  <button id="btn">
    Click Me
  </button>
</div>

<div id="app">
  <h2>Active:  isBurgerActive </h2>
</div>

【讨论】:

Vue 仅位于 Vue CLI 应用程序中,而不位于文档页面上。所以我不确定这是否可行,您使用的是 Vue CDN。虽然我可以试试。 如果你生成CLI,你可以尝试在vue初始化var app = new Vue(router, store, ...)之后,在index.js中设置按钮脚本onclick监听器。

以上是关于如何从 Vue APP 外部调用/初始化 Vue 方法的主要内容,如果未能解决你的问题,请参考以下文章

vue项目中,main.js,App.vue,index.html如何调用

vue项目中,main.js,App.vue,index.html如何调用

Vue组件之从外部获取数据

vue开发 - 将方法绑定到window对象,给app端调用

从外部文件访问 Vue

Vue.js 从外部 js 文件调用异步函数