小编use*_*782的帖子

Vue Router - 捕获所有通配符不起作用

我正在将 Vue Router 与 Vue 3 一起使用,并尝试添加一个包罗万象的路由以在用户尝试访问无效 URL 时重定向用户。当我尝试使用通配符 (*) 时,我将以下错误记录到控制台:

Uncaught Error: A non-empty path must start with "/"
    at tokenizePath (vue-router.esm.js?8c4f:975)
    at createRouteRecordMatcher (vue-router.esm.js?8c4f:1106)
    at addRoute (vue-router.esm.js?8c4f:1190)
    at eval (vue-router.esm.js?8c4f:1335)
    at Array.forEach (<anonymous>)
    at createRouterMatcher (vue-router.esm.js?8c4f:1335)
    at createRouter (vue-router.esm.js?8c4f:2064)
    at eval (index.js?a18c:26)
    at Module../src/router/index.js (app.js:1402)
    at __webpack_require__ (app.js:854)
Run Code Online (Sandbox Code Playgroud)

我假设这是因为我没有在包含星号的路径前面加上“/”,但是如果我这样做,那么捕获全部不起作用。以下是我的路线:

imports...

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/user',
    name: 'User',
    // route level code-splitting
    // this generates a separate chunk (user.[hash].js) …
Run Code Online (Sandbox Code Playgroud)

vue-router vuejs3

13
推荐指数
2
解决办法
8836
查看次数

更改 postgres 超级用户的身份验证方法

我正在使用 psql 连接到 Debian 10 上的 PostgreSQL 数据库。我尝试以postgres用户身份连接到默认的postgres数据库。默认情况下,这是使用“对等”身份验证方法,不需要密码。

如果我使用“对等”身份验证登录并使用以下命令设置密码:

ALTER USER postgres WITH PASSWORD 'myPassword';
Run Code Online (Sandbox Code Playgroud)

查询成功执行,但是当我编辑 pg_hba.conf 以更改身份验证方法时:

local    all            postgres                    peer
Run Code Online (Sandbox Code Playgroud)

到:

local    all            postgres                    scram-sha-256
Run Code Online (Sandbox Code Playgroud)

并重新启动服务器,我收到以下错误:

~$ sudo -u postgres psql postgres
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
~$
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

postgresql debian psql

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

Vite + Vue3 新项目 - 找不到模块“./App.vue”或其相应的类型声明

我刚刚使用 npm init vue@latest 创建了一个新的 Vite + Vue3 项目。

在 VSCode 中加载项目时,导入 App.vue 时,我在 Main.ts 中收到以下错误:

Cannot find module './App.vue' or its corresponding type declarations
Run Code Online (Sandbox Code Playgroud)

该应用程序似乎工作正常,因此我认为这是我的 VSCode 配置的问题。有谁知道如何解决这个问题?

vue.js visual-studio-code

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

Vite-proxy ECONNREFUSED 节点 v17+

我使用的是 Node v18.12.1 和 vite v3.0.4。下面是我从 Vue.js vite 开发服务器连接到 Node.js REST API 的代理代码:

proxy: {
  "/api": {
    target: "http://localhost:3000",
    changeOrigin: true,
  }
}
Run Code Online (Sandbox Code Playgroud)

从 v16 更新我的节点版本后,我现在从 vite-proxy 收到此错误:

[vite] http proxy error:
Error: connect ECONNREFUSED ::1:3000
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1300:16) (x3)
Run Code Online (Sandbox Code Playgroud)

我听说 sine v17 中,Node 支持 ipv6 作为 localhost。我该如何解决?

vue.js vite

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

Vue 3 中的自定义指令

我正在尝试创建一个自定义指令来在单击元素时执行函数。我无法让它工作,我查看了自定义指令的文档,甚至直接从那里复制示例也不起作用。

我正在使用单个文件模板和本地指令。这是模板:

<template>
  <div class="container">
    <div class="row">
      <div class="col-xs-12 col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3">
        <button v-test:click="clicked">Click me</button>
      </div>
    </div>
  </div>
</template>
Run Code Online (Sandbox Code Playgroud)

这是脚本:

<script>
  export default {
    name: 'App',
    components: {
    },
    directives: {
      test: {
        bind(el, binding) {
          const type = binding.arg;
          const fn = binding.value;
          el.addEventListener(type, fn)
        }
      }
    },
    methods: {
      clicked() {
        alert('text');
      }
    }
  }
</script>
Run Code Online (Sandbox Code Playgroud)

我尝试过使用 Vue 3 语法(beforeMount 而不是绑定)以及全局指令,但这些东西似乎也不起作用。有谁知道我做错了什么?

如果我为传递给 的值提供括号,则一旦页面加载,警报框就会出现v-test。无论哪种方式,单击按钮时都不会发生任何事情。

vue-directives vuejs3

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

未捕获的类型错误:Vue 不是构造函数 - Vuex 与 Vue 3

我正在尝试将 Vuex 与 Vue 3 一起使用。这是我在 main.js 中的代码:

import { createApp } from 'vue';
import App from './App.vue';
import Vuex from 'vuex';

const app = createApp(App);
app.use(Vuex);

const store = new Vuex.Store({
    state: {
        counter: 0
    }
});

app.store(store);
app.mount('#app');
Run Code Online (Sandbox Code Playgroud)

尝试此操作时,我收到以下错误:

Uncaught TypeError: Vue is not a constructor
Run Code Online (Sandbox Code Playgroud)

我尝试过使用官方 Vuex 文档中推荐的语法,但这也不起作用。有谁知道如何解决这一问题?

vuex vuejs3

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

与 Vue 3 一起使用时出现 Vuelidate TypeError

我正在尝试将 Vuelidate 与 Vue 3 一起使用。当我尝试向组件添加一些验证器时,出现以下错误:

index.js?1dce:614 Uncaught (in promise) TypeError: Cannot read property 'super' of undefined
Run Code Online (Sandbox Code Playgroud)

我相信这与我在 Vue 实例中使用 Vuelidate 的方式有关。这是我的 main.js 文件:

import { createApp } from 'vue';
import App from './App.vue';
import Vuelidate from 'vuelidate';

const app = createApp(App);
app.use(Vuelidate);
app.mount('#app');
Run Code Online (Sandbox Code Playgroud)

我还将包含组件代码:

<template>
  <div id="signup">
    <div class="signup-form">
      <form>
        <div class="input">
          <label for="email">Mail</label>
          <input
                  type="email"
                  id="email"
                  @input="$v.email.$touch()"
                  v-model="email">
                  <div>{{ $v }}</div>
        </div>
      </form>
    </div>
  </div>
</template>

<script>
  import { required, email } from 'vuelidate/lib/validators'

  export default {
    data …
Run Code Online (Sandbox Code Playgroud)

vuelidate vuejs3

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