小编And*_*e12的帖子

在Vue.JS中使用TypeScript时,如何从导入中删除.vue扩展名?

我使用vue-cli3创建了一个项目,并包含TypeScript

我的src / app.vue

<template>
  <div id="app">
    <hello-world msg="test"/>
  </div>
</template>

<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';
import HelloWorld from '@/components/HelloWorld';

@Component({
  components: { HelloWorld },
})
export default class App extends Vue {}
</script>
Run Code Online (Sandbox Code Playgroud)

编译器在“找不到模块'@ / components / HelloWorld'”中引发错误;

组件HelloWorld存在。

但是,如果我删除lang="ts"或添加了.vue扩展名,那么一切都可以正常编译。在我的tsconfig.json中,我有

  "paths": {
    "@/*": [ "src/*" ]
  },
Run Code Online (Sandbox Code Playgroud)

这是问题tsconfig.json还是其他?

typescript tsconfig vue.js

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

在router.ts中访问Vuex商店模块的状态

我按照教程使用TypeScript设置了包含模块的Vuex存储.

到目前为止,我有:

vuex/types.ts:

export interface RootState {
    version: string;
}
Run Code Online (Sandbox Code Playgroud)

vuex/user-profile.ts:

import { ActionTree, Module, MutationTree } from 'vuex';
import { RootState } from './types';

interface User {
    firstName: string;
    uid: string;
}

interface ProfileState {
    user?: User;
    authed: boolean;
}

const state: ProfileState = {
    user: undefined,
    authed: false,
};

const namespaced: boolean = true;

export const UserProfile: Module<ProfileState, RootState> = {
    namespaced,
    state,
};
Run Code Online (Sandbox Code Playgroud)

store.ts:

import Vue from 'vue';
import Vuex, { StoreOptions …
Run Code Online (Sandbox Code Playgroud)

typescript vue.js vue-router vuex vuex-modules

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

将 Vuetify 工具提示(v-tooltip)组件与外部激活器(即未包装)一起使用

我了解如何使用 Vuetify 的v-tooltip和包装组件的工具提示。但是,我不太确定如何将激活按钮放在外面。

例如我有这个(非工作代码):

<v-tooltip bottom
  :activator="$refs.filterBtn"
>
  Filter displayed items
</v-tooltip>
<v-btn
  ref="filterBtn"
  icon
  @click="isFilter = !isFilter"
>
  <v-icon>fa-filter</v-icon>
</v-btn>
Run Code Online (Sandbox Code Playgroud)

我也尝试使用 propactivator没有v-bind:相同的结果

想法:我希望将按钮与工具提示分开放置,以便运行单元测试。测试时,shallowMount剥离里面的任何东西<v-tooltip>,这样我就无法测试按钮。问题是我不知道如何使工具提示在悬停时显示(就像包裹时一样),我不想@click.

编辑:这是代码笔

vue.js vuetify.js

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

以编程方式设置 v-select 值不会在 vuetify 中触发 @change

我试图以编程方式设置 v-select 值,但是关联的 @change 事件不会触发。如果我手动选择该选项,则事件会按预期触发。

模板:

<div id="app">
<v-app dark>
  <v-select 
    v-model="currentItem" 
    :items="items"
    @change="itemChanged"
  />
</v-app>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

Vue.use(Vuetify);

var vm = new Vue({
    el: "#app",
  methods: {
    itemChanged(item) {
        console.log('item changed',item);
    }
  },
  data: {
    currentItem: '',
    items: [
        { text: "Name", value: 'name' },
      { text: "Number", value: 'number' },
      { text: "Inputs", value: 'inputs' }
    ]
  },
  mounted() {
    setTimeout(() => {
        this.currentItem = 'inputs';
    }, 2000);
  }
});
Run Code Online (Sandbox Code Playgroud)

的jsfiddle是这里

除了在以编程方式设置值时手动调用该函数之外,是否有人有任何解决方案?

vue.js vuetify.js

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