zoukankan      html  css  js  c++  java
  • 2021年5月21日

    时间:1.7个小时左右

    代码:行左右

    博客:1

    知识点:模拟路由

    <!DOCTYPE html>
    <html lang="en">
      <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>Document</title>
        <!-- 导入 vue 文件 -->
        <script src="./lib/vue_2.5.22.js"></script>
      </head>
      <body>
        <!-- 被 vue 实例控制的 div 区域 -->
        <div id="app">
          <!-- 切换组件的超链接 -->
          <a href="#/zhuye">主页</a> 
          <a href="#/keji">科技</a> 
          <a href="#/caijing">财经</a>
          <a href="#/yule">娱乐</a>
    
          <!-- 根据 :is 属性指定的组件名称,把对应的组件渲染到 component 标签所在的位置 -->
          <!-- 可以把 component 标签当做是【组件的占位符】 -->
          <component :is="comName"></component>
        </div>
    
        <script>
          // #region 定义需要被切换的 4 个组件
          // 主页组件
          const zhuye = {
            template: '<h1>主页信息</h1>'
          }
    
          // 科技组件
          const keji = {
            template: '<h1>科技信息</h1>'
          }
    
          // 财经组件
          const caijing = {
            template: '<h1>财经信息</h1>'
          }
    
          // 娱乐组件
          const yule = {
            template: '<h1>娱乐信息</h1>'
          }
          // #endregion
    
          // #region vue 实例对象
          const vm = new Vue({
            el: '#app',
            data: {
              comName: 'zhuye'
            },
            // 注册私有组件
            components: {
              zhuye,
              keji,
              caijing,
              yule
            }
          })
          // #endregion
    
          // 监听 window 的 onhashchange 事件,根据获取到的最新的 hash 值,切换要显示的组件的名称
          window.onhashchange = function() {
            // 通过 location.hash 获取到最新的 hash 值
            console.log(location.hash);
            switch(location.hash.slice(1)){
              case '/zhuye':
                vm.comName = 'zhuye'
              break
              case '/keji':
                vm.comName = 'keji'
              break
              case '/caijing':
                vm.comName = 'caijing'
              break
              case '/yule':
                vm.comName = 'yule'
              break
            }
          }
        </script>
      </body>
    </html>
    <!DOCTYPE html>
    <html lang="en">
      <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>Document</title>
        <!-- 导入 vue 文件 -->
        <script src="./lib/vue_2.5.22.js"></script>
        <script src="./lib/vue-router_3.0.2.js"></script>
      </head>
      <body>
        <!-- 被 vm 实例所控制的区域 -->
        <div id="app">
          <router-link to="/user">User</router-link>
          <router-link to="/register">Register</router-link>
    
          <!-- 路由占位符 -->
          <router-view></router-view>
        </div>
    
        <script>
          const User = {
            template: '<h1>User 组件</h1>'
          }
    
          const Register = {
            template: '<h1>Register 组件</h1>'
          }
    
          // 创建路由实例对象
          const router = new VueRouter({
            // 所有的路由规则
            routes: [
              { path: '/user', component: User },
              { path: '/register', component: Register }
            ]
          })
    
          // 创建 vm 实例对象
          const vm = new Vue({
            // 指定控制的区域
            el: '#app',
            data: {},
            // 挂载路由实例对象
            // router: router
            router
          })
        </script>
      </body>
    </html>

  • 相关阅读:
    abp记录1
    javascript Date format(js日期格式化) 转载
    css 宽高等比
    MVC 自己创建URL 对象处理路径
    转载 Easyui Tree方法扩展
    Bootstrap 学习笔记1
    动态创建form 完成form 提交
    单例模式
    工厂模式(已体会到此模式的意义)
    设计模式实践
  • 原文地址:https://www.cnblogs.com/j-y-s/p/14903344.html
Copyright © 2011-2022 走看看