html中使用引入vue公共組件


問題描述

在一個使用傳統 `.html` 文件搭建的vue項目中,Vue 只被用作數據渲染工具。每個頁面都有相同的 header 和 footer,
導致有大量重復代碼。現在的目標是將 header 和 footer 提取出來,使代碼更加整潔。

解決辦法

1. 將公共部分(如 header 和 footer)寫入一個 `.js` 文件中。這些文件的本質是在當前頁面中定義的公共 Vue 組件。
2. 組件的模板可以使用字符串拼接(如果內容較少),或者使用模板字符串。

 

完整的代碼, 可以復制引用

 

index.html 文件內容

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>test</title>
</head>
<body>
<div id="vue_app">
    <!-- 使用自定義的頭部組件 -->
    <common-head></common-head>
perl
Copy code
<!-- 頁面獨有的內容 -->
<div style="background: #fba">我是內容</div>
    </div>

    <!-- 引入Vue庫 -->
<script type="text/javascript" src="vue.js"></script>
    <!-- 引入公共頭部組件 -->
<script type="text/javascript" src="header.js"></script>
<script type="text/javascript" src="home.js"></script>
<script>
const home = { template: '<common-content></common-content>' }
const router = new VueRouter({
    routes: [
        { path: '/home', component: home },
        { path: '/about', component: about },
        { path: '/safety', component: safety },
        { path: '/help', component: help },
        { path: '/moving', component: moving },
        { path: '*', redirect: '/home'}
    ]
});

new Vue({
    router,
    mounted() {
    }
}).$mount("#app");
</script>
</body>
</html>

header.js 文件內容

// 定義一個公共頭部的 Vue 組件
Vue.component('common-header', {
template: `
<div class="animate-route">
    2222
</div>
`});


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM