laravel vue 3 项目中 apps.component is not a function问题

发布于 2022-09-13 00:21:59 字数 1810 浏览 14 评论 0

webpack.mix.js中

const mix = require('laravel-mix');

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel applications. By default, we are compiling the CSS
 | file for the application as well as bundling up all the JS files.
 |
 */

 mix.js('resources/assets/js/app.js', 'public/js').vue();

app.js中

import { createApp } from 'vue';
const apps = createApp({}).mount("#apps")
console.log(apps)
apps.component( 'but', require('./components/button.vue').default)

其中,btn是自己写的一个简单的vue组件

package.json中

{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "mix",
        "watch": "mix watch",
        "watch-poll": "mix watch -- --watch-options-poll=1000",
        "hot": "mix watch --hot",
        "prod": "npm run production",
        "production": "mix --production"
    },
    "devDependencies": {
        "jquery": "^3.2",
        "cross-env": "^5.1",
        "eonasdan-bootstrap-datetimepicker": "^4.17.47",
        "gojs": "^2.1.25",
        "bootstrap-datepicker": "^1.8.0",
        "resolve-url-loader": "^2.3.1",
        "@vue/compiler-sfc": "^3.1.2",
        "axios": "^0.21",
        "laravel-mix": "^6.0.0-beta.17",
        "lodash": "^4.17.19",
        "postcss": "^8.1.14",
        "vue": "^3.1.2",
        "vue-loader": "^16.2.0",
        "webpack": "^5.40.0",
        "webpack-cli": "^4.7.2"
    }
}

npm run dev后,没有出错
进入页面后报错
image.png
Proxy是打印的apps

不知道为啥会有这种错误

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我纯我任性 2022-09-20 00:21:59

与大多数应用方法不同的是,mount 不返回应用本身。相反,它返回的是根组件实例。
改成如下即可
import { createApp } from 'vue';
const apps = createApp({});
console.log(apps)
apps.component( 'but', require('./components/button.vue').default);
apps.mount("#apps");

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文