最近在總結這一年來製做的網頁模塊,網站風格統一的狀況下,網站頁面結構不會改變,所以想記錄一部分網站中統一的結構,方便往後維護。css
用到的相關技術:html
vue, element-ui, prismjs, vue-prism-editor, vue-router
作成的效果如圖:vue
由於是在 vue 環境下,所以須要安裝如下插件:vue-router
npm i prismjs npm i vue-prism-editor npm i element-ui
製做過程當中有三個知識點:npm
sibar.js 菜單結構是經過一個json實現的,數據結構使用相似 router 的組件嵌套方式,方便維護:element-ui
//外層的數組表明一級菜單,內層sub數組表明二級菜單。 module.exports = [{ name: 'Anviz Module', id:'anviz', sub: [{ name: 'layout 佈局', componentName: 'AnvizLayout' }, { name: 'container 佈局容器', componentName: 'AnvizContainer' }] },{ name: 'Module', id: 'utec', sub: [{ name: 'details', componentName: 'ProductCard' }, { name: 'table', componentName: 'Table' }] }]
在 Sidebar 組件中加載這個 sibar.js ,經過遍歷這個數組,製做菜單:json
<el-submenu v-for="item in menu" :index="item.id" :key="item.id"> <template slot="title"> <i class="icon icon-rem-twentyfour icon-dashbord"></i> <span v-text="item.name"></span> </template> <div class="normal-padding" v-for="sub in item.sub" :key="sub.componentName"> <el-menu-item :index="sub.componentName" v-text="sub.name"></el-menu-item> </div> </el-submenu>
代碼顯示區域爲一個 CodeView 的子組件,使用 prism-editor 的方法顯示相關代碼。 prism-editor 支持將 code 定義爲變量,經過改變 code 的不一樣的值來顯示不一樣的內容。數組
<prism-editor :code="htmlCode" language="html" class="my-editor"></prism-editor>
而父組件給子組件傳的值是定義不一樣的顯示內容,好比 html/css/js等,顯示的內容直接使用模板字符串的方式,將整個結構或結構所需樣式傳遞。數據結構
<template> <div> <codeView :htmlCode="htmlCode" :jsCode="jsCode" :cssCode="cssCode"></codeView> </div> </template> let htmlCode = `` let jsCode = `` let cssCode = ``
//子組件接收並給組件變量賦值 props:['htmlCode','jsCode','cssCode']
很簡單。ide