IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue路由案例 -> 正文阅读

[JavaScript知识库]Vue路由案例

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

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</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="./vue.js"></script>
  <script src="./router.js"></script>
</head>

<body>
  <!-- 要被vue实例控制的区域 -->
  <div id="app">
    <router-view></router-view>
  </div>

</body>
<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="/rights">权限管理</router-link></li>
          <li><router-link to="/goods">商品管理</router-link></li>
          <li><router-link to="/orders">订单管理</router-link></li>
          <li><router-link to="/settings">系统设置</router-link></li>
        </ul>  
      </div>  
      <!-- 右侧内容区域-->
      <div class="content right"><div class="main-content">
        <router-view />
      </div>
      </div>
    </div>
    <!-- 尾部区域 -->
    <footer class="footer">版权信息</footer>
  </div>
    `
  }
  const Users = { 
    data(){
      return{
        userlist:[
          {id:1,name:'张三',age:20},
          {id:2,name:'张三',age:20},
          {id:3,name:'张三',age:20},
          {id:4,name:'张三',age:20},
        ]
      }
    }
    ,
    methods:{
      goDetail(id){
        console.log(id);
        this.$router.push("/userinfo/"+id);
      }
    }
    ,
    template:`<div>
      <h3>用户管理区域</h3>
      <table>
          <thead>
            <tr><th>编号</th><th>姓名</th><th>年龄</th><th>操作</th></tr>
          </thead>
          <tbody>
            <tr v-for="item in userlist" :key="item.id">
              <td>{{item.id}}</td>
              <td>{{item.name}}</td>
              <td>{{item.age}}</td>
              <td>
                <a href="javascript:;" @click="goDetail(item.id)">详情</a>
              </td>
            </tr>
          </tbody>
        </table>
    </div>`}
  const UserInfo = {
    props:[
      'id'
    ],
    template:`<div>
      <h5>用户详情页 ---用户id为:{{id}}</h5>
      <button @click="goback()">后退</button>
    </div>`,
    methods:{
      // 实现后退
      goback(){
        this.$router.go(-1);
      }
    }
  }
  const Rights = { template:`<div>
    <h3>权限管理区域</h3>
  </div>`}
  const Goods = { template:`<div>
    <h3>商品管理区域</h3>
  </div>`}
  const Orders = { template:`<div>
    <h3>订单管理区域</h3>
  </div>`}
  const Settings = { template:`<div>
    <h3>系统设置区域</h3>
  </div>`}
  // 创建路由对象
  const router = new VueRouter({
    routes:[
      {
        path: '/',
        component: App,
        redirect:'/users', //重定向
        children:[
        {path: '/users', component:Users},
        {path: '/userinfo/:id', component:UserInfo ,props:true},
        {path: '/rights', component:Rights},
        {path: '/goods', component:Goods},
        {path: '/orders', component:Orders},
        {path: '/settings', component:Settings}
      ]},

    ]
  })
  const vm = new Vue({
    el: '#app',
    router
  })
</script>

</html>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 22:49:56  更:2021-12-28 22:52:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:31:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码