标签: vuejs3

如何使用 nuxt 和 @vue/composition-api 提供/注入 Vue 根实例?

我正在尝试将@vue/apollo-composable与我的 Nuxt-Ts 应用程序一起使用。这是如何将它注入到“普通”Vue 应用程序的根实例中的示例:

import { provide } from '@vue/composition-api'
import { DefaultApolloClient } from '@vue/apollo-composable'

const app = new Vue({
  setup () {
    provide(DefaultApolloClient, apolloClient)
  },

  render: h => h(App),
})
Run Code Online (Sandbox Code Playgroud)

问题:我不知道如何访问Nuxt-TS 中的根实例。

我尝试制作一个插件,但它直接注入到根实例中(这是不对的,因为@vue/apollo-composable使用composition-api::provide()which 创建了它自己的属性_provided

如果我使用 nuxt 插件,则会inject$get 连接起来。如果我_provided直接写一个对象通过ctx.app._provided =它不会粘住。

import { DefaultApolloClient } from "@vue/apollo-composable";
const myPlugin: Plugin = (context, inject) => {
  const defaultClient = ctx.app.apolloProvider.defaultClient;
  inject(DefaultApolloClient.toString(), defaultClient) …
Run Code Online (Sandbox Code Playgroud)

typescript nuxt.js vue-apollo vuejs3 vue-composition-api

1
推荐指数
1
解决办法
5493
查看次数

Vue 3:当 Vue 3 模板中的 ref 时,为什么 dom ref 值未定义

我正在使用 Vue 3 beta 版本,我试图访问设置函数中的 ref,我的组件:

JS(Vue):

const Child = createComponent({
  setup () {
    let tabs = ref()
    console.log(tabs)
    return {}
  },
  template: '<div ref="tabs" >Wow</div>'
})
Run Code Online (Sandbox Code Playgroud)

演示:https : //jsfiddle.net/xkeyLwu4/2/

但是 tabs.value 的值是未定义的。我在这里做错了什么?

javascript vue.js vue-component vuejs3

1
推荐指数
1
解决办法
5282
查看次数

如何在没有 NodeJs 捆绑器的情况下在 Django 上通过 CDN 使用 Vue3?

在 Vue2 上,我只添加了 CDN,然后我的 js 文件中就有 Vue 可用,但在 Vue3 上我不能这样做 - 我的 js 文件没有检测到 Vue。为了使用Vue3,我该如何解决?

javascript django vue.js vuejs3

1
推荐指数
1
解决办法
1879
查看次数

在 Vue.js 3 中搜索反应式数组

在 Vue.js 3(测试版)中,我使用 定义了一个数组reactive,因为我想将其内容绑定到循环中的某些 UI 控件。到目前为止,这行得通,一切都很好。

现在,我需要更新这个数组中的一个值,这意味着我需要在这个数组上运行 afind或 a findIndex。由于该数组由 Vue.js 代理,因此无法按预期工作:代理不是一个简单的普通数组。

我所做的是使用 获取副本toRawfindIndex在该副本上运行,然后使用索引更新原始数组。这行得通,但当然它似乎不是很优雅。

有没有更好的方法来解决这个问题?

PS:如果是只适用于Vue 3的解决方案就好了,我不在乎2.x系列。

javascript arrays vue.js vuejs3

1
推荐指数
1
解决办法
1016
查看次数

将数据传递给 createApp (vue)

使用 Webpack,我有以下代码:

    import { createApp } from 'vue'
    import Vue from 'vue'
    import App from './components/ItemSearch/ItemSearch.vue'
    
    createApp(App).mount('#search-app')
Run Code Online (Sandbox Code Playgroud)

在我的网站上,我有一个搜索应用程序页面,其中包含<div id="search-app" />将应用程序的根安装到的 。

我想知道的是,是否有可能以某种方式插入(最好)来自包含 javascript 文件的页面的一些数据?我想从数据库中包含一些项目,例如设置和搜索类别,如果可以提供帮助,我想避免向它们发出 AJAX 请求。

是否有帮助,或者有什么方法可以在加载时内嵌这些数据?

使用 Webpack,我不太明白如何从加载 javascript 文件的页面访问 App,以便我可以data在以某种方式将其传递给 之前进行修改createApp(),或者甚至可能的话。我可以import在浏览器加载的页面上使用语句,还是这只是 Webpack 的(或类似的)功能?

提前谢谢了。

vuejs3

1
推荐指数
1
解决办法
707
查看次数

如何将 Vuex store 注入 Vue 3

我如何将 vuex 注入 Vue 3,在 Vue 2 中可能像:

new Vue({
  el: '#app',
  store: store,
})
Run Code Online (Sandbox Code Playgroud)

但是在 Vue 3 中你会怎么做,因为没有new Vue().

javascript vue.js vuex vuejs3 vuex4

1
推荐指数
1
解决办法
4435
查看次数

如何在 Vue3.0 中使用 Swiper slideTo()?

Vue 版本:3.0.2

刷卡版本:6.3.5

我想在Vue3.0中使用Swiper的slideTo方法,但是好像不行。

你能告诉我怎么用吗?https://codesandbox.io/s/interesting-hooks-1jblc?file=/src/App.vue

swiper vue.js vuejs3 swiperjs

1
推荐指数
2
解决办法
908
查看次数

ThreeJS 组件在 VueJS 2 但不是 3 中工作

我正在将我的应用程序升级到 VueJS 3。我读到您可以保留相同的组件。但是我现在在控制台中有一个错误,尽管我没有改变任何东西。这是我的组件:

<template>
  <v-container>
    <div
      @click="onClick"
      @mousemove="onMouseMove"
      id="menu3D"
      style="background-color: transparent; position: fixed; left: 20px; width:15%; height:100%;">
    </div>
    <v-row class="text-center">

      <v-col
        class="mb-5"
        cols="12"
      >
        <h2 class="headline font-weight-bold mb-3">
          Accueil
        </h2>

        <v-row justify="center">

          <p>
            Client: {{ JSON.stringify(client)}}
          </p>
          <p>
            Mouse: {{ JSON.stringify(mouse)}}
          </p>
          <p>
            Container: {{ JSON.stringify(container)}}
          </p>
        </v-row>
      </v-col>
    </v-row>
  </v-container>
</template>

<script>

import * as Three from 'three';

export default {
  name: 'Accueil',
  mounted() {
    this.init();
  },
  methods: {
    init() {
      this.createScene();
      this.createCamera();
      this.userData.formes.forEach((x) => this.createShape(x));
      this.addSpotlight(16777215);
      this.addAmbientLight();
      this.animate(); …
Run Code Online (Sandbox Code Playgroud)

three.js vue.js vuejs2 vuejs3

1
推荐指数
2
解决办法
893
查看次数

在 Vue Router 中有条件地导入一个组件

我想有条件地在 vue 路由器中导入一个组件。这是我目前所拥有的:

children: [
  {
    path: ':option',
    component: () => import('../components/Option1.vue'),
  },
],
Run Code Online (Sandbox Code Playgroud)

根据什么:option是我想要导入一个不同的组件(Option1.vueOption2.vue,等)。我知道我可以放几个,children但我实际上需要option在我的父组件中使用该变量(如果路由有选项,我会进行测试)。

怎么可能做到这一点?提前致谢 :)

vue.js vue-router vuejs3

1
推荐指数
1
解决办法
743
查看次数

在 Vue3 中访问代理对象

如何访问在 Vue.js 中抛出代理对象的获取响应。从字面上看,我在我的 Vue.js 组件中触发了一个方法,该方法调用连接我的 Vuex 中的 getter 的计算函数,代码如下:

METHOD IN COMPONENT

methods: {
    ...mapActions(["getAllUsers"]),


    async gettingAllusers() {
      const target = await this.getterGetAllUsers;
      console.log(target);
      return target;
    },
  },

COMPUTED IN COMPONENT

 computed: {
    ...mapGetters(["getterGetAllUsers"]),

    getterGetAllUsersFunction() {
      return this.$store.getters.getterGetAllUsers;
    },
  },

VUEX

const store = createStore({
  state() {
    return {
      userRegisteredState: true,
      allUsersState: {},
    };
  },

  mutations: {
    
   commit_get_all_users(state, payload) {
      state.allUsersState =  payload;
      console.log(state.allUsersState);
      return state.allUsersState;
    },
  },

  getters: {
    getterGetAllUsers(state) {
      console.log(state);
      console.log(state.allUsersState)
       return state;
    },
  },

  actions: { …
Run Code Online (Sandbox Code Playgroud)

proxy vuejs3

1
推荐指数
2
解决办法
1985
查看次数