演示地址https://jinxiaoliang.cn/Personal/VueRouter/index.html#/users

代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>基于vue-router的案例</title>
    <style type="text/css">
      html,
      body,
      #app {
        margin: 0;
        padding: 0px;
        height: 100%;
      }
      .header {
        height: 50px;
        background-color: #545c64;
        line-height: 50px;
        text-align: center;
        font-size: 24px;
        color: #fff;
      }
      .footer {
        height: 40px;
        line-height: 40px;
        background-color: #888;
        position: absolute;
        bottom: 0;
        width: 100%;
        text-align: center;
        color: #fff;
      }
      .main {
        display: flex;
        position: absolute;
        top: 50px;
        bottom: 40px;
        width: 100%;
      }
      .content {
        flex: 1;
        text-align: center;
        height: 100%;
      }
      .left {
        flex: 0 0 20%;
        background-color: #545c64;
      }
      .left a {
        color: white;
        text-decoration: none;
      }
      .right {
        margin: 5px;
      }
      .btns {
        width: 100%;
        height: 35px;
        line-height: 35px;
        background-color: #f5f5f5;
        text-align: left;
        padding-left: 10px;
        box-sizing: border-box;
      }
      button {
        height: 30px;
        background-color: #ecf5ff;
        border: 1px solid lightskyblue;
        font-size: 12px;
        padding: 0 20px;
      }
      .main-content {
        margin-top: 10px;
      }
      ul {
        margin: 0;
        padding: 0;
        list-style: none;
      }
      ul li {
        height: 45px;
        line-height: 45px;
        background-color: #a0a0a0;
        color: #fff;
        cursor: pointer;
        border-bottom: 1px solid #fff;
      }

      table {
        width: 100%;
        border-collapse: collapse;
      }

      td,
      th {
        border: 1px solid #eee;
        line-height: 35px;
        font-size: 12px;
      }

      th {
        background-color: #ddd;
      }
    </style>
    <script src="js/vue.js"></script>
    <script src="js/vue-router.js"></script>
  </head>
  <body>
      <div id="app">
          <router-view></router-view>
      </div>

    <script>
        //定义APP跟组件
        const App = {
            template: `
                <div>
                  <!-- 头部区域 -->
                  <header class="header">后台管理系统</header>
                  <!-- 中间主体区域 -->
                  <div class="main">
                    <!-- 左侧菜单栏 -->
                    <div class="content left">
                      <ul>
                        <li><router-link to='/users'>用户管理</router-link></li>
                        <li><router-link to='/admins'>权限管理</router-link></li>
                        <li><router-link to='/products'>商品管理</router-link></li>
                        <li><router-link to='/orders'>订单管理</router-link></li>
                        <li><router-link to='/systems'>系统设置</router-link></li>
                      </ul>
                    </div>
                    <!-- 右侧内容区域 -->
                    <div class="content right">
                        <div class="main-content">
                            <router-view></router-view>
                        </div>
                    </div>
                  </div>
                  <!-- 尾部区域 -->
                  <footer class="footer">版权信息</footer>
                </div>
            `
        }
        //用户管理组件
        const User = {
            data: function() {
                return {
                    userList: [
                        {id: 1, name: '张三', age: 10},
                        {id: 2, name: '李四', age: 20},
                        {id: 3, name: '王五', age: 30},
                        {id: 4, name: '赵六', age: 40},
                    ]
                }
            },
            template: `
                <div>
                    <h1>用户管理区域</h1>
                    <table>
                        <thead>
                            <tr>
                                <th>编号</th>
                                <th>姓名</th>
                                <th>年龄</th>
                                <th>操作</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr :key='item.id' v-for='item in userList'>
                                <td>{{item.id}}</td>
                                <td>{{item.name}}</td>
                                <td>{{item.age}}</td>
                                <td>
                                    <a href='javscript:;' @click='goDetail(item.id)'>详情</a>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            `,
            methods: {
                goDetail: function(id) {
                    this.$router.push('/userinfo/' + id)
                }
            }
        }
        //用户详情页组件
        const UserInfo = {
            props: ['id'],
            template: `
                <div>
                    <h1>详情页面---用户id为{{id}}</h1>
                    <button @click='goBack'>后退</button>
                </div>
            `,
            methods:{
                goBack: function(){
                    this.$router.go(-1)
                }
            }
        }
        //权限管理管理组件
        const Admin = {
            template: `
                <h1>权限管理区域</h1>
            `
        }
        //商品管理组件
        const Product = {
            template: `
                <h1>商品管理区域</h1>
            `
        }
        //订单管理组件
        const Order = {
            template: `
                <h1>订单管理区域</h1>
            `
        }
        //系统设置组件
        const System = {
            template: `
                <h1>系统设置区域</h1>
            `
        }

        //配置路由规则
        const routes = [
            {
                path: '/',
                component: App,
                redirect: '/users',
                children: [
                    {path: '/users', component: User},
                    {path: '/userinfo/:id', component: UserInfo, props:true},
                    {path: '/admins', component: Admin},
                    {path: '/products', component: Product},
                    {path: '/orders', component: Order},
                    {path: '/systems', component: System}
                ]},
        ]

        //创建实例
        const router = new VueRouter({
            routes
        })

        //挂载
           const vm = new Vue({
            el: '#app',
            router
        })
    </script>
  </body>
</html>
Last modification:May 9th, 2020 at 05:20 pm
如果觉得我的文章对你有用,请随意赞赏