小编Den*_*han的帖子

vue3:深度观察者返回的新值和旧值始终相同

const app = {
  data(){
    return {
      form: {
        name: '',
        password: ''
      }
    } 
  },
  watch: {
    form: {
      handler(form, oldForm){
        console.log(form, oldForm);
      },
      deep: true
    } 
  }
}

Vue.createApp(app).mount('#app')
Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@next"></script>
<main id="app">
  <form>
    <input v-model="form.name"/>
    <input v-model="form.password"/>
  </form>
</main>
Run Code Online (Sandbox Code Playgroud)

我有一个对象值的深度观察器,根据文档,它应该同时获取被观察对象的先前值和当前值。

但在这段代码中,深度观察者返回的新值和旧值始终相同。这是为什么?

非常感谢任何人的帮助!

vue.js vuejs3

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

如何使用vite动态导入json文件

我在Nuxtjs项目中使用vue-i18n,我想用 vite 动态导入我的语言环境文件。

当我使用 webpack 时,这些代码运行良好

插件/i18n.js

import Vue from 'vue';
import VueI18n from 'vue-i18n';
import config from '@/config';

Vue.use(VueI18n);

let messages = Object;

config.locale.available.forEach(locale => {
    messages[locale] = require(`~/locales/${locale}.json`);
});

export default ({ app, store }) => {
    app.i18n = new VueI18n({
        locale: store.state.locale.locale,
        messages: messages
    });
}
Run Code Online (Sandbox Code Playgroud)

require()我发现vitejs中没有,还有vitejs的glob-import功能

  1. 所以我首先尝试如下:
let messages = Object,
    languages = import.meta.glob('../locales/*.json'); // => languages = {} (languages only get {} value)

config.locale.available.forEach(locale => {
    messages[locale] = languages[`../locales/${locale}.json`];
}); …
Run Code Online (Sandbox Code Playgroud)

nuxt.js vue-i18n vite

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

nuxt3:如何使用 form、useFetch() 和 pinia 测试 SSR 页面?

在我的 Nuxt3 项目中,我有一个非常基本的登录页面,它是 SSR,如下所示:

页面/login.vue

<template>
    <form
        @submit.prevent="login">
        <input
            name="email"
            v-model="form.email"/>
        <input
            name="password"
            v-model="form.password"/>
        <button>login</button>
    <form>
</template>

<script setup>
import { useAuth } from '~/store/auth.js'; 

const auth = useAuth();
const form = ref({email: '', password: ''});
const router = useRouter();

const login = async () => {
    useFetch('/api/auth/tokens', {
        method: 'POST',
        body: form.value
    })
    .then(({ data }) => {
          const { token, user } =  data.value;
          auth.setUser(user);
          auth.setToken(token);
          router.push('/profile');           
    })
}
</script>
Run Code Online (Sandbox Code Playgroud)
  1. 首先,我尝试像 SPA 页面一样测试它:
import { describe, test, expect …
Run Code Online (Sandbox Code Playgroud)

vue.js nuxt.js nuxtjs3 vitest

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

Nuxt3:如何使用tailwindcss

通过Nuxt3 Starter首次尝试 Nuxt3

我想知道如何在 Nuxt3 Starter 中手动使用 tailwindcss 。

(不是通过@nuxtjs/tailwindcss,因为它适用于 Nuxt2,不适用于 Nuxt3。)

我创建了一个空白的 Nuxt3 项目

npx degit "nuxt/starter#v3" my-nuxt3-project
Run Code Online (Sandbox Code Playgroud)

然后,我手动安装了 tailwindcss

npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
Run Code Online (Sandbox Code Playgroud)

nuxt.config.ts

export default {
    css: [
        '~/assets/tailwind.css',
    ]
}
Run Code Online (Sandbox Code Playgroud)

资产/tailwind.css

npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
Run Code Online (Sandbox Code Playgroud)

但我只能得到原始代码,但不能得到编译后的CSS: 原始代码,但不是编译后的 css

如何在 Nuxt3 中使用 tailwindcss?

任何帮助是极大的赞赏!


在线迷你演示


更新:

Nuxt3 已经支持@nuxtjs/tailwindcss

基本示例

nuxt.js tailwind-css unocss

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

Laravel9:验证中总是缺少路由参数

我正在使用 Laravel v9.2.1 + Laravel Sanctum v2.14.1

我有一条路线

DELETE /api/v1/auth/tokens/{token}
Run Code Online (Sandbox Code Playgroud)

例如(这token是一个 uuid)

DELETE http://example.com/api/v1/auth/tokens/5fcfa274-81d8-4e9f-8feb-207db77531af
Run Code Online (Sandbox Code Playgroud)

我确信它按预期工作php artisan route:list 在此输入图像描述

在控制器处理之前,应该通过 FormRequest 进行验证

应用程序/Http/Controllers/V1/Auth/TokensController.php

DELETE /api/v1/auth/tokens/{token}
Run Code Online (Sandbox Code Playgroud)

应用程序/Http/Requests/V1/Auth/Tokens/DestroyRequest.php

DELETE http://example.com/api/v1/auth/tokens/5fcfa274-81d8-4e9f-8feb-207db77531af
Run Code Online (Sandbox Code Playgroud)

但我只得到的是令牌字段是必需的

我已经通过了token,为什么这个'required'规则仍然有效?

在此输入图像描述


我尝试过的

只有当我像下面这样传递 token 参数时,它才会起作用

DELETE /api/auth/tokens/something?token=test_regex_is_working
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我尝试dd($this->token)app/Http/Requests/V1/Auth/Tokens/DestroyRequest.php中,它按预期工作。

在此输入图像描述

php laravel

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

Electron:2021年如何通过js关闭应用程序?

我想通过js关闭Electron App。

"electron": "^13.1.7"
Run Code Online (Sandbox Code Playgroud)

我仔细阅读了这些问题:

但这些都不适合我。


以下所有测试均基于官方的电子快速启动

  1. 根据上面问题的答案,我得到了这些代码:

索引.html

"electron": "^13.1.7"
Run Code Online (Sandbox Code Playgroud)

main.js

  <body>
    <button id="close-app">
        close
    </button>
    <script src="./renderer.js"></script>
  </body>
Run Code Online (Sandbox Code Playgroud)

没有任何影响或错误。

没有任何影响或错误。

似乎代码从未运行过,我console.log('run')在上面添加了一个addEventListener,但控制台中没有打印任何内容。


  1. 根据文档,我得到了这些代码:

(不改变官方的电子快速启动,只改变preload.jsindex.html

索引.html

与上面相同

预加载.js

const { app } = require('electron');
window.addEventListener('DOMContentLoaded', () => {
  document.getElementById("close-app").addEventListener("click", function (e) {
      app.quit();
  })
})
Run Code Online (Sandbox Code Playgroud)

Uncaught TypeError: Cannot read property 'quit' of undefined只 得到未捕获的类型错误:无法读取未定义的属性“退出”


那么,如何通过js关闭Electron App呢?

非常感谢任何人的帮助!

javascript node.js electron

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