vue3 cdn 写router

改写vue2
[javascript] cdn模式下vue和vue-router实现路由-腾讯云开发者社区-腾讯云 (tencent.com)

vue-router v4.0.15
https://unpkg.com/vue-router@4.0.15/dist/vue-router.global.js

vue v3.2.36
unpkg.com/vue@3.2.36/dist/vue.global.js

jquery

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./vue3.js"></script>
    <script src="./vue3-router4.js"></script>
    <script src="./jquery.min.js"></script>
</head>

<body>
    <div id="app" class="chatKfPageApp">
        <div>主页</div>
        <router-view></router-view>
    </div>
    <template id="chatKfIndex">
        <div>111</div>
        <router-link :to="`/chatKfBox/visitorId=${1}`">点击切换1</router-link>
        <div @click="onQiehuan">点击切换2</div>
    </template>
    <template id="chatBox">
        <div>222</div>
    </template>
</body>


<script>
    //组件 - 首页
    var chatKfIndex = {
        data: function () {
            return {
                visitors: {},
            }
        },
        methods: {
            onQiehuan() {
                Vue.prototype.push({ path: `/chatKfBox/visitorId=${1}` })
            }
        },
        created: function () {
        },
        // `<h1>Contenuto Home</h1>`
        template: $("#chatKfIndex").html()
    };
    //组件 - 详情
    var chatKfBox = {
        data: function () {
            return {
                msgList: [],
                messageContent: "",
                face: [],
            }
        },
        methods: {
            init() {
                alert(this.$parent.socket);
                alert(this.$route.params.visitorId);
            },
        },
        created: function () {
            this.init();
        },
        template: $("#chatBox").html()
    };

    const AppVue = {
        data: function () {
            return {
                socket: null,
            }
        },
        created() {
            this.socket = 3;
        },
    }

    // 初始化
    const vueapp = Vue.createApp(AppVue)

    // 路由
    var routes = [
        { path: '/', component: chatKfIndex }, // 这个表示会默认渲染
        { path: '/chatKfBox/:visitorId', component: chatKfBox },
    ];

    const vuerouter = VueRouter.createRouter({
        history: VueRouter.createWebHashHistory(),
        routes: routes,
    })

    vueapp.use(vuerouter);

    Vue.prototype = vuerouter

    vueapp.mount('#app')
</script>


</html>

关键点

<div id='app'></div>

    const app = Vue.createApp({
        data() {
            return {
                mess: "ciao mondo"
            }
        }
    });

    const Home = { template: `<h1>Contenuto Home</h1>` };
    const About = { template: `<h1>Contenuto About</h1>` };
    const Portfolio = { template: `<h1>Contenuto Portfolio</h1>` };
    const Contatti = { template: `<h1>Contenuto Contatti</h1>` };

    const routes = [
        { path: "/", component: Home },
        { path: "/about", component: About },
        { path: "/portfolio", component: Portfolio },
        { path: "/contatti", component: Contatti }
    ];
    const router = VueRouter.createRouter({
           history: VueRouter.createWebHashHistory(),
           routes
    })

    app.use(router)
    app.mount('#app')
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容