标签: vuejs3

Vue 3:从父组件向子组件发出事件

现在我需要从父组件向子组件发出事件。我在 vue version 3 中看到$on$off实例$once方法被删除了。应用程序实例不再实现事件发射器接口。

现在我如何可以从 vue 版本 3 中的父组件发出事件并从子组件监听?

javascript vue.js vue-component vuejs2 vuejs3

16
推荐指数
2
解决办法
3万
查看次数

Vue3组合API查看存储值

我想通过在 Vue 组件中观察 Vuex 状态值来检测它的变化。我目前正在使用 Vue 3 和组合 API。我尝试过以下方法:

setup(props) {
   const store = useStore();

   watch(store.getters.myvalue, function() {
      console.log('value changes detected');
   });

   return {
      myvalue: computed(() => store.getters.myvalue)
   }
},
Run Code Online (Sandbox Code Playgroud)

但改变console.log()时不会被调用。myvalue

vue.js vuex vuejs3 vue-composition-api

16
推荐指数
2
解决办法
3万
查看次数

玩笑 使用 d3 时出现意外的令牌“导出”

我读过许多与我类似的问题,但似乎没有一个能解决我的问题。我正在使用 Vue3、TypeScript、Jest 和 D3 v7。当我尝试时,import * as d3 from "d3";我在测试中收到此错误:

({"Object.<anonymous>":
  function(module,exports,require,__dirname,__filename,global,jest)
  {export * from "d3-array";
Run Code Online (Sandbox Code Playgroud)

当我这样导入 d3 时也会出现此错误 import { BaseType, Selection, Transition, select } from "d3";

我尝试更新我的笑话配置的transformIgnorePatterns属性以进行读取,但这也不起作用:

transformIgnorePatterns: [
  "<rootDir>/node_modules/(?!d3-(array))",
]
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下我在这里缺少的部分吗?下面也是我的整个jest.config.js文件

module.exports = {
  collectCoverageFrom: [
    "**/src/**.ts", 
    "**/src/**/**.ts", 
    "!**/dist/**", 
    "!**/node_modules/**", 
    "!**/public/**"
  ],
  errorOnDeprecated: true,
  preset: "@vue/cli-plugin-unit-jest/presets/typescript",
  testMatch: ["**/*.spec.ts", "!**/node_modules/**"],
  testPathIgnorePatterns: ["<rootDir>/dist/", "<rootDir>/node_modules/"],
  "modulePaths": [
    "<rootDir>"
  ],
  transformIgnorePatterns: [
    "<rootDir>/node_modules/(?!d3-(array))",
  ],
  transform: {
    "^.+\\.ts": "ts-jest",
    "^.+\\.vue$": "vue-jest",
  },
};
Run Code Online (Sandbox Code Playgroud)

d3.js vue.js jestjs ts-jest vuejs3

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

错误:@vitejs/plugin-vue 要求 vue (&gt;=3.2.13) 或 @vue/compiler-sfc 存在于依赖关系树中

我正在使用带有模块 federation 和 vue3 的 berry 版本的纱线。
当我运行这些命令来创建项目的基础时:

mkdir vue-error
yarn set version stable
yarn plugin import workspace-tools
yarn init -pw
cd packages
npx create-mf-app # body
yarn
yarn workspace body add single-spa-vue
cd body
yarn start
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[webpack-cli] Failed to load '/Users/test/Development/trash/vue-error/packages/body/webpack.config.js' config
[webpack-cli] Error: @vitejs/plugin-vue requires vue (>=3.2.13) or @vue/compiler-sfc to be present in the dependency tree.
    at Object.<anonymous> (/Users/jcuzmar/Development/trash/vue-error/.yarn/__virtual__/vue-loader-virtual-8ff7836f4c/0/cache/vue-loader-npm-16.8.3-e05f7daca3-7c0566847b.zip/node_modules/vue-loader/dist/compiler.js:14:15)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.external_module_.Module._load (/Users/jcuzmar/Development/trash/vue-error/.pnp.cjs:17959:14)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18) …
Run Code Online (Sandbox Code Playgroud)

webpack vue.js yarn-workspaces vuejs3 webpack-module-federation

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

如何在defineProps中设置本地默认值?

我尝试使用 将 prop 的默认值设置为本地值i18n。我正在使用 Vue 3.2 和脚本设置标签。

我已尝试以下操作,但这给了我一个错误:

DefineProps 引用本地声明的变量。

<script setup>
import { useI18n } from 'vue-i18n';
    
const { t } = useI18n();
    
defineProps({
  type: { type: String, required: true },
  title: { type: String, required: false, default: `${t('oops', 1)} ${t('request_error', 1)}` },
  description: { type: String, required: false, default: '' },
  showReload: { type: Boolean, required: false, default: false },
  error: { type: String, required: true },
});
</script>
Run Code Online (Sandbox Code Playgroud)

处理这个问题的最佳方法是什么?

internationalization vuejs3

16
推荐指数
2
解决办法
3万
查看次数

如何从 Vue 3 中的内部脚本设置导出默认值?

导出默认语句似乎在内部不起作用<script setup>

如果我尝试将其导出为test.vue

<template>
  <div id="test" class="test">

  </div>
</template>


<script setup>
const x = 5

export default {
    x
}
</script>


<style scoped lang="scss">
</style>
Run Code Online (Sandbox Code Playgroud)

然后将其导入另一个blog.vue

<script setup>
import x from './test'
</script>
Run Code Online (Sandbox Code Playgroud)

我收到大量错误:

app.js?id=3b6365f542826af47b926162803b3ef6:37396 Uncaught Error: Module build failed (from ./node_modules/vue-loader/dist/index.js):
TypeError: Cannot read properties of null (reading 'content')
    at selectBlock (:3000/Users/artur/PhpstormProjects/safa-ameedee.com/node_modules/vue-loader/dist/select.js:23:45)
    at Object.loader (:3000/Users/artur/PhpstormProjects/safa-ameedee.com/node_modules/vue-loader/dist/index.js:67:41)
    at Object../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/vue/backend/components/test.vue?vue&type=script&setup=true&lang=js (app.js?id=3b6365f542826af47b926162803b3ef6:37396:7)
    at __webpack_require__ (app.js?id=3b6365f542826af47b926162803b3ef6:64806:42)
    at Module../resources/vue/backend/components/test.vue?vue&type=script&setup=true&lang=js (app.js?id=3b6365f542826af47b926162803b3ef6:60116:217)
    at __webpack_require__ (app.js?id=3b6365f542826af47b926162803b3ef6:64806:42)
    at Module../resources/vue/backend/components/test.vue (app.js?id=3b6365f542826af47b926162803b3ef6:59477:102)
    at __webpack_require__ (app.js?id=3b6365f542826af47b926162803b3ef6:64806:42) …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vuejs3 vue-script-setup

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

如何在 Vitest 中清除/重置模拟

我有一个简单的可组合项useRoles,需要测试

import { computed } from "vue";
import { useStore } from "./store";

export default function useRoles() {
  const store = useStore();

  const isLearner = computed(() => store.state.profile.currentRole === "learner");

  return {
    isLearner
  };
}

Run Code Online (Sandbox Code Playgroud)

我的测试方法如下

import { afterEach, expect } from "vitest";
import useRoles from "./useRoles";

describe("useRoles", () => {
  afterEach(() => {
    vi.clearAllMocks();
    vi.resetAllMocks();
  });

  it("should verify values when is:Learner", () => { // works
    vi.mock("./store", () => ({
      useStore: () => ({
        state: {
          profile: …
Run Code Online (Sandbox Code Playgroud)

javascript typescript vuejs3 vitest

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

Vue 3 Composition API - 如何获取安装组件的组件元素($el)

我想用来onMounted启动第三方库。为此,我需要组件元素作为其上下文。在 Vue 2 中,我会使用它,this.$el但不确定如何使用组合函数来实现。setup有两个参数,没有一个包含元素。

setup(props, context) {
    onMounted(() => {
        interact($el)
            .resizable();
    })
}
Run Code Online (Sandbox Code Playgroud)

vue.js vuejs3 vue-composition-api

15
推荐指数
3
解决办法
2万
查看次数

在 Laravel 中安装 vue 3.0

有没有办法将 vue 3.0 安装到 Laravel 8?当我跑

npm install vue@next
Run Code Online (Sandbox Code Playgroud)

它开始安装 Vue 3.0,但出于某种原因,它也开始安装vue-template-compilerv2.6.12。出现以下内容:

    Additional dependencies must be installed. This will only take a moment.

    Running: npm install vue-template-compiler --save-dev --production=false
Run Code Online (Sandbox Code Playgroud)

然后当我跑

npm run dev
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

  • vue@3.0.0 (C:\wamp64\www\vue-sample\node_modules\vue\index.js)
  • vue-template-compiler@2.6.12 (C:\wamp64\www\vue-sample\node_modules\vue-template-compiler\package.json)

这可能会导致事情无法正常工作。确保对两者使用相同的版本。如果您使用的是 vue-loader@>=10.0,只需更新 vue-template-compiler。如果您使用的是 vue-loader@<10.0 或 vueify,重新安装 vue-loader/vueify 应该会将 vue-template-compiler 提升到最新版本。

@ ./resources/js/app.js 19:35-79 @ 多 ./resources/js/app.js ./resources/sass/app.scss

我是 Vue 的新手。我该怎么办?

laravel vue.js vue-component vuejs3 laravel-mix-vue3

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

使用 vite 构建 lib 时如何设置多个输出

当我尝试在 vue3 中构建库时,我想设置多个输出文件。代码如下:

rollupOptions {
  output: [
    {
      file: 'bundle.js',
      format: 'cjs'
    },
    {
      file: 'bundle.min.js',
      format: 'iife',
      name: 'version',
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

然后我会得到一个错误:

您必须为单文件构建设置“output.file”,或者在生成多个块时设置“output.dir””

那么,我该怎么做才能使这项工作成功呢?

投票:2.3.7

rollup lib vuejs3 vite

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