マイクロフロントエンド -- アンバウンドソリューションの公式ウェブサイトデモ操作手順

ダウンロード実行

デオムのダウンロード

公式デモは GitHub にあります (アクセスに問題があり、セットアップが必要ですが、私はセットアップしていません)

リンク: https://github.com/Tencent/wjie (他の場所にあるため、使用することもできます)

pnpmダウンロード

その中のパッケージは pnpm 経由でダウンロードする必要がありますが、npm を使用してダウンロードすると問題が発生します。

npm install pnpm -g

注: pnpm の最新バージョンはデフォルトでダウンロードされ、サポートされるノードは 14.6 以降です。以下のバージョンについては、pnpm の公式 Web サイトにアクセスして過去のバージョンを見つけてください。

走る

npm run start

次のインターフェイスが表示されます。これは成功を意味します。

個人プロジェクトに参加する

プロジェクトを作成する

例で独自のプロジェクトを作成します (私は vue2 を使用しているので、vue2 プロジェクトを作成するなど)

注: メイン ページ プロジェクトは、すべてのプロジェクトが最終的に実行される場所であり、メイン ページ プロジェクトと同等です。

個人プロジェクト - ルーティングの構成

初期プロジェクト (実験的)

後で表示して使用するのに便利なルーティングを構成します。個人プロジェクトに vue スキャフォールディングがある場合は、簡単な方法でルーティングを生成することをお勧めします。

vue add router

router.js ファイルと 2 つのパス テンプレートが自動的に生成されます

プロジェクトを完了する

ルートメインファイルに次のように設定する必要があります

export default new Router({
    mode: 'history',
    base: process.env.NODE_ENV === 'production' ? '/{项目名称}/' : '',
    routes: [{
            path: '/',
            name: 'home',
            component: Home
        },
        {
            path: '/about',
            name: 'about',
            // route level code-splitting
            // this generates a separate chunk (about.[hash].js) for this route
            // which is lazy-loaded when the route is visited.
            component: () => import( /* webpackChunkName: "about" */ './views/About.vue')
        }
    ]
})

関連付けを開始する

main-vue で、個人プロジェクトを unbounded に関連付け始め、router.js ファイルで次の操作を実行します。

まずページをインポートします

import VueTest from "../views/Vuetest.vue";

次に、ルーティング パスを設定します。name属性の値が前と同じであることに注意してください。

{
        path: "/vuetest",
        name: "vue_test",
        component: VueTest,
 },

以下に示すように

次に、インポートしたページをビューファイルに追加します

以下に示すように

コード:

<template>
    <div>
        <h2>ADASDADAD!!</h2>
        <WujieVue width="100%" height="100%" name="vue_dtest" :url="viteUrl" :sync="true"></WujieVue>
    </div>
</template>

<script>
import hostMap from '../hostMap.js';
export default {
    data() {
        return {
            viteUrl: hostMap('//localhost:8080/')
        };
    }
};
</script>

<style></style>

次に、main-vue の hostMap.js ファイルに個人プロジェクトの設定を追加します。プロジェクトのアドレスの値が異なります。同じように書かないでください。動作しません。

コード:

const map = {
    "//localhost:7100/": "//wujie-micro.github.io/demo-react17/",
    "//localhost:7200/": "//wujie-micro.github.io/demo-vue2/",
    "//localhost:7300/": "//wujie-micro.github.io/demo-vue3/",
    "//localhost:7400/": "//wujie-micro.github.io/demo-angular12/",
    "//localhost:7500/": "//wujie-micro.github.io/demo-vite/",
    "//localhost:8080/": "//localhost:8080/",
    "//localhost:7600/": "//wujie-micro.github.io/demo-react16/",
    "//localhost:7700/": "//wujie-micro.github.io/demo-main-react/",
    "//localhost:8000/": "//wujie-micro.github.io/demo-main-vue/",
};

export default function hostMap(host) {
    if (process.env.NODE_ENV === "production") return map[host];
    return host;
}

最後に、main-vue の app.vue に router-link ステートメントを追加します。

プロジェクトには対応するディレクトリが表示されます

質問:

以下の図に示されているのと同じ問題が発生する場合は、ページが読み込まれていません。まず、ページを表示するには、個人プロジェクトが実行されている必要があります。

コンソールを開くとエラーが表示されます

Access to fetch at *** from origin *** has been blocked by CORS policy: No 'Access-Control-Allow-Origin'

それはクロスドメイン問題を解決していないことを意味します

解決

vue.config.js ファイルなどの個人プロジェクトのプロキシを設定します。

/ vue.config.js

/**
 * @type {import('@vue/cli-service').ProjectOptions}
 */
module.exports = {
    publicPath: "./",
    devServer: {
        headers: {
            "Access-Control-Allow-Origin": "*",
            "Access-Control-Allow-Headers": "*",
            "Access-Control-Allow-Methods": "*",
        },
        port: "8080",
    },
};

然后重新运行下我们个人的项目,再次刷新页面,就会出现结果,路由跳转也没有问题

おすすめ

転載: blog.csdn.net/Jocks5/article/details/128802112