基於element和vue的一個簡單的后台管理頁面基礎模型(這里我用了php從數據庫獲取數據然后在JS區域接收了獲取的數據。PS:不會用axios)
直接附上所有代碼:數據庫:mywu 用戶名:root 密碼:root 數據表:test
<?php header("Content-type:text/html;charset=utf-8"); $host = "localhost"; $username = 'root'; $password = 'root'; $db = 'mywu'; //1.連接數據庫 $conn = mysqli_connect($host,$username,$password,$db); if (!$conn) { die('Could not connect: ' . mysqli_error($con)); }
//2.定義一個空數組用來接收數據 $usersArr = []; mysqli_set_charset($conn,'utf8');
//3.獲得數據表test的數據 $user_menu = "select * from test"; //4.發送sql語句 $res = mysqli_query($conn,$user_menu); //結果集的資源 //5.將結果集資源轉換成數據 // $row = $res->fetch_assoc();
//while判定條件是否為true是則循環 while($row = $res->fetch_assoc()) { $userArr[] = $row; } ?> <!DOCTYPE html> <html> <!-- head區域引入了element-ui.css,vue.js,vue-router.js,element-ui.js的CDN 注意先后順序 --> <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>VUE項目</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-ui/lib/theme-chalk/index.css"> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script> <script src="https://cdn.jsdelivr.net/npm/element-ui@2.13.0/lib/index.js"></script> </head> <body> <div id="app">
<!-- 路由填充位 --> <router-view></router-view> </div> <script>
//將從數據庫獲取的數據JSON解析並賦值給usermenu var usermenu = <?php echo json_encode($userArr);?> // 主頁 const Home = { data() { return {
//用來接收JSON數據的空數組 menulist: [] } }, template: `<div style="height:100%;"> <el-container class="home-con" style="height:100%"> <el-header> <img src="http://style.wuliwu.top/LOGO" /> <span>后台管理系統 單頁版</span> </el-header> <el-container> <el-aside width="200px"> <el-menu default-active="1" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" >
//遍歷接受的數據 <el-submenu :index="item.id + ''" v-for="item in menulist" :key="item.id"> <template slot="title"> <i class="el-icon-location"></i> <span>{{item.username}}</span> </template> <el-menu-item index="1-1" @click="cliuser">用戶列表</el-menu-item> <el-menu-item index="1-2" @click="clipic">上傳圖片</el-menu-item> </el-submenu> </el-menu> </el-aside> <el-main>
<!-- 路由占位符 --> <router-view></router-view> </el-main> </el-container> </el-container> </div>`, created() { this.getMenuList() }, methods: { cliuser() { this.$router.push('/user') }, clipic() { this.$router.push('/uppicture') }, getMenuList() {
//將解析后的JSON賦值給menulist this.menulist = usermenu console.log(usermenu) }, } } // 用戶 // 上傳圖片按鈕 const router = new VueRouter({ routes: [ { path: '/', component: Home } ] }) new Vue({ el: '#app', data: {}, methods: {}, router }) </script> <style> html, body, #app { height: 100%; margin: 0; padding: 0; } .el-header { background-color: #373d41; padding-left: 0; color: #fff; display: flex; font-size: 20px; align-items: center; } .el-header img { margin-right: 10px; } .el-aside { background-color: #545c64; } .el-card { margin-top: 10px; } .el-breadcrumb { margin-bottom: 15px; } </style> </body> </html>
僅供參考,如有不解之處請在下方評論區留言,謝謝!