标签: vuejs3

Vuetify 3 和 vue-i18n 用于标签属性

当我需要标签内容中的本地化文本时,我会执行以下操作

<span>{{ $t('myText') }}</span>
Run Code Online (Sandbox Code Playgroud)

但我找不到为标签属性添加本地化文本的方法。我试过

 <v-text-field
    label="{{ $t('myText') }}"
  ></v-text-field>
Run Code Online (Sandbox Code Playgroud)

但没有成功。有人能说一下该怎么做吗?

javascript vue.js vue-i18n vuejs3 vuetifyjs3

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

Vue3 / Typescript 定义 Array(string) 的属性

我有一个在 JavaScript 中工作的组件属性,但在 Typescript 中遇到问题:

props: {
   keep_open: {
     type: Array,
     default: () => [],
   }
}
Run Code Online (Sandbox Code Playgroud)

这个定义在这里并没有失败,而是在代码的后面:

let keepOpen: Array<string> = [this.data.popupId];
this.keep_open.forEach((id) => {
   keepOpen.push(id);
});
Run Code Online (Sandbox Code Playgroud)

Keep_Open 中的 id 是未定义类型,不会推入 KeepOpen。

我该如何解决这个问题,无论是在后面的代码中还是在属性的定义中?

typescript vuejs3

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

Vue 3 使用代理包装器比较对相同对象的引用

我有父/子组件,并通过代理和不使用代理绑定对象数组:

const selectedTags = ref([]);
const tags = [
    {
        id: 'efrwe',
    },
    {
        id: 'dhjhe23',
    }];

<Child :tags="tags" :selectedTags="selectedTags">
Run Code Online (Sandbox Code Playgroud)

在子组件中,我将选定的元素从“tags”添加到“selectedTags”,它对源数组中的对象的引用!

props.selectedTags.push(tags[0]);
Run Code Online (Sandbox Code Playgroud)

但后来我尝试比较同一个对象上的这个引用,我返回 false!

console.log(tags[0] == selectedTags[0]); // false
Run Code Online (Sandbox Code Playgroud)

你说“好吧,你尝试比较代理对象和清除对象”,但我尝试与代理目标进行比较并再次返回 false!

console.log(tags[0] == selectedTags[0].target); // false
console.log(tags[0] == selectedTags.target[0]); // false
Run Code Online (Sandbox Code Playgroud)

我也尝试使用“价值”

console.log(tags[0] == selectedTags[0].value); // false
console.log(tags[0] == selectedTags.value[0]); // false
Run Code Online (Sandbox Code Playgroud)

我如何比较 vue 3 中同一对象的引用?

我想你明白我想要做的,计算返回非选定的项目:

let nonSelected =  computed(() =>
     props.tags.filter(t => props.selectedTags.every(s => s != t))
);
Run Code Online (Sandbox Code Playgroud)

vue.js vue-component vuejs2 vuejs3

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

如何在独立(单文件)Vue3 SPA 中使用 Compose API?

我通过引导项目内容然后构建它以进行部署来编写(业余)Vue3 应用程序(*)。效果很好。

\n

我需要创建一个可以直接在浏览器中加载的独立的单个 HTML 页面。几年前,当我开始使用 Vue 时(当时是在 v1 \xe2\x86\x92 v2 过渡期间),我曾经这样做过,当时我立即找到了正确的文档。

\n

我找不到类似的 Vue3 和 Composition API。

\n

显示值响应变量的框架页面是什么(我将在完整的构建应用程序的上下文中{{hello}}定义)<script setup>

\n

这就是我过去的做法(我希望我做对了)

\n
<!DOCTYPE html>\n<html lang="en">\n<head>\n    <meta charset="UTF-8">\n    <title>Title</title>\n    <script src="https://unpkg.com/vue@2"></script>\n</head>\n<body>\n\n<div id="app">\n    {{hello}}\n</div>\n\n<script>\n    // this is how I used to do it in Vue2 if I remember correctly\n    new Vue({\n        el: \'#app\',\n        data: {\n            hello: "bonjour!"\n        }\n        // methods, watch, computed, mounted, ...\n    })\n</script>\n\n</body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n
\n

(*) 我实际上使用Quasar 框架,但这并没有改变我问题的核心。

\n

vue.js vuejs3 vue-composition-api vue-script-setup

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

./src/main.js 在 multi (webpack)-dev-server/client 中,但我没有 main.js。我想使用打字稿

我正在使用 tailwind 和 typescript 制作一个演示 Vue.js 3 应用程序。每当我运行该应用程序时,我都会收到错误消息:

This relative module was not found:

* ./src/main.js in multi (webpack)-dev-server/client?https://192.168.2.102:8090&sockPath=/sockjs-node (webpack)/hot/dev-server.js ./src/main.js
Run Code Online (Sandbox Code Playgroud)

主要.ts

import { createApp } from 'vue';
import App from './App.vue'
import router from './router'
import './styles/app.css';

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

应用程序.vue

<template>
    <div class="justify-center flex bg-yellow-300 items-center h-screen">
        <div class="text-4xl">
            {{ hello }} 
        </div>
    </div>
</template>

<script lang="ts">
import {Vue} from "vue-property-decorator";

export default class App extends Vue {

    hello = 'Hello world'

}
</script>
Run Code Online (Sandbox Code Playgroud)

vue.config.js

module.exports = { …
Run Code Online (Sandbox Code Playgroud)

typescript vue.js vuejs3

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

如何在`setup`函数中使用css模块?

我可以在vue3的setup函数中引用css模块中的类名吗?

<script setup>

console.log(this.$style.myClass) // this won't work

</setup>

<style lang="scss" module>
.myClass {

}
</style>
Run Code Online (Sandbox Code Playgroud)

vue.js vuejs3

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

如何在 Vue 3 中扩展组件?

如果我尝试element-plus直接使用该组件,导入工作得很好。

我想做的是从element-plus库中扩展一个组件(它使用composition apiVue 3 中的组件)并向我的组件和方法添加一些附加属性。

在 Vue 2 中,它看起来像这样:

export default {
  extends: SomeComponent
}
Run Code Online (Sandbox Code Playgroud)

在 Vue 3 中,这似乎不再起作用了。

我读过有关DefineComponent 的内容,但到目前为止,还没有成功实现它。

有人能给我一些灯光吗?谢谢。

migration vue.js vuejs3 element-plus

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

为什么道具的 Vue3 观察者不会被触发?(组合 API)

我拼命尝试watchpropVue3(3.2.31,Composition API)中:

\n
<script lang="ts" setup>\nimport { toRef, watch } from \'vue\'\n\nconst props = defineProps({\n  \'trigger-refresh\': {\n    type: String\n  }\n})\nconst triggerRefresh = toRef(props, \'trigger-refresh\')\nwatch(triggerRefresh, (a, b) => console.log(\'props triggered refresh\'))\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n

我触发了 的发射trigger-refresh,它通过上面的代码传递给组件,并且我看到triggerRefreshDevTools\xe2\x86\x92Vue 中发生了变化

\n

watch因此,除了未触发(即控制台上没有消息)之外,组件内部的一切都很好。

\n

我阅读了Watchers 的文档以及对有关观看道具的问题的答复(其中一个答复几乎与我所做的相同),但我只是无法理解为什么这在我的情况下不起作用。

\n

watch vue.js vue-props vuejs3

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

Quill 编辑器不会在输入字段中显示 v-model (Vue 3)

我想显示一些html从数据库中获取的内容quill editor。似乎html很好(在<p>段落中显示)并且绑定到quill editorvia v-model,但它只是不显示:

<template>
  <div id="text-editor" class="text-editor">
    <quill-editor :modules="modules" :toolbar="toolbar" v-model:content="store.re.body" contentType="html"/>
    <p>{{store.re.body}}</p>
  </div>
</template>


<script setup>
import BlotFormatter from 'quill-blot-formatter'
import store from "../../../js/store";

store.re.body = ''

const modules = {
    module: BlotFormatter,
}

const toolbar = [
    [{ 'header': [1, 2, 3, 4, 5, 6, false] }],
    [{ 'size': ['small', false, 'large', 'huge'] }],
    ['bold', 'italic', 'underline', 'strike'],
    ['blockquote', 'code-block'],
    [{ 'align': [] }],
    [{ 'list': …
Run Code Online (Sandbox Code Playgroud)

wysiwyg quill vue.js vuejs3 vue-quill-editor

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

图像未加载vuejs脚本设置

我试图在子组件中动态加载图像,但图像没有加载。

这是我尝试过的:

基本的 :src="imagePath" 未加载

require 不再可用,因此不起作用

import( ../${imagePath}) 返回一个未定义的 Promise

这是我的代码:

父组件

<script setup lang="ts">
import TheProject from './utils/TheProject.vue';


const projects = [
  {
    idProject: 1,
    title: "title",
    desc: "desc",
    imagePath: "../path/..",
    cardColor: "C4F6DE"
  },
]

</script>

<template>
      <div v-for="project in projects">
        <TheProject :idProject="project.idProject" :title="project.title" 
        :desc="project.desc" :imagePath="project.imagePath" :cardColor="project.cardColor" />
  </div>
</template>

Run Code Online (Sandbox Code Playgroud)

子组件


<script setup lang="ts">

import { onMounted } from 'vue';

const props = defineProps({
    idProject: Number,
    title: String,
    desc: String,
    imagePath: String,
    cardColor: String
})

</script>

<template> …
Run Code Online (Sandbox Code Playgroud)

javascript src vuejs3 vite

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