>>分享孙卫琴的Java技术专稿和著作 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 8261 个阅读者 刷新本主题
 * 贴子主题:  【Vue.js技术专题】路由管理器的基本用法 回复文章 点赞(0)  收藏  
作者:sunweiqin    发表时间:2022-08-29 17:36:33     消息  查看  搜索  好友  邮件  复制  引用

本文参考孙卫琴,杜聚宾所创作的 <<精通Vue.js: Web前端开发技术详解>>一书

对于路由很复杂的应用,使用Vue Router可以简化对路由的管理,让源代码更加简洁、逻辑分明,而且容易进行模块化的开发。
在例程1的myroute.html中,引入了Vue Router插件:
  <script src="https://unpkg.com/vue-router@4"></script>

myroute.html通过Router路由管理器来管理路由,为HomeComponent组件和AboutComponent组件设定了路由。当用户在网页上选择特定的链接,路由管理器就会显示相应的组件。

例程1  myroute.html

    <script src="https://unpkg.com/vue@3"></script>
    <script src="https://unpkg.com/vue-router@4"></script>

    <!-- 或者使用下载到本地的JS文件
    <script src="vue.js"></script>
    <script src="vue-router.js"></script>
    -->

    <div id="app">
      <p>
        <!-- 设置导航链接 -->
        <router-link to="/">主页</router-link> |
        <router-link to="/about">关于我们</router-link>
      </p>

      <!-- 插入与路由匹配的组件 -->
      <router-view></router-view>
    </div>

    <script>
      //定义组件
      const HomeComponent = { template: '<div>这是主页</div>' }
      const AboutComponent = { template: '<div>这是我们的介绍</div>' }

      // 定义组件的路由
      const myroutes = [
        { path: '/', component: HomeComponent },
        { path: '/about', component: AboutComponent },
      ]

      //创建路由管理器router实例
      const router = VueRouter.createRouter({
        //设置hash路由模式
        history: VueRouter.createWebHashHistory(),
        //设置路由
        routes: myroutes  
      })

      const app = Vue.createApp({})
      app.use(router)       //使用路由管理器
      app.mount('#app')
    </script>

在myroute.html中,根组件模板中的<router-link>组件和<router-view>组件都来自于Router路由管理器。<router-link>组件用来生成导航链接:

   <router-link to="/">主页</router-link> |
   <router-link to="/about">关于我们</router-link>

以上代码渲染后的结果为:

<a href="#/" >主页</a> |
<a href="#/about" >关于我们</a>

根组件模板中的<router-view>组件会根据当前的路由显示相应的组件。假如用户访问的URL为“myroute.html#/about”,那么<router-view>组件就会显示相应的AboutComponent组件。<router-view>组件可以放置在模板的任意位置,相当于一个占位标记,实际要显示的组件会被插入到<router-view>组件所在的位置。

在myroute.html的JavaScript脚本中创建了一个路由管理器实例router:

const router = VueRouter.createRouter({
  //设置hash路由模式
  history: VueRouter.createWebHashHistory(),
  //设置路由
  routes: myroutes  
})

路由管理器的history属性指定路由模式,本章11.4节会进一步介绍路由模式的概念。路由管理器的routes属性指定路由,即网页中待显示的各个组件和链接的对应关系。

Vue应用实例的use(router)函数使得路由管理器会对应用进行路由管理:

const app = Vue.createApp({})
app.use(router)       //使用路由管理器
app.mount('#app')

通过浏览器访问myroute.html,会得到如图1所示的网页。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
图1  myroute.html的网页

在myroute.html网页上选择“主页”或“关于我们”的链接,路由管理器就会根据它的routes属性所设定的路由,显示相应的HomeComponent组件或AboutComponent组件。





程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->图形用户界面(下)
  JavaWeb开发-->在Web应用中访问Web服务
  JSP与Hibernate开发-->数据库事务的概念和声明
  Java网络编程-->用Axis发布Web服务
  精通Spring-->Vue Router路由管理器
  Vue3开发-->Vue简介
  【Vue.js技术专题】Vue组件的数据监听
  【Vue.js技术专题】Vue组件的单向数据流
  【Vue.js技术专题】分割setup()函数
  【Vue.js技术专题】自定义指令范例:v-drag指令
  【Spring Cloud Alibaba专题】Seata的架构
  【Spring Cloud Alibaba专题】Nacos配置属性的持久化
  【持久化专题】为什么JPA和Hibernate的持久化方法都抛出运行...
  【Vue专题】Vue组件的CSS过渡模式
  【持久化专题】用@MapsId注解映射派生主键
  【持久化专题】@Enumerated注解映射枚举类型
  【持久化专题】对象-关系的映射概念
  【Java网络编程专题】用Apache HttpClients下载网上的图片等...
  【Java网络编程专题】盘点用Java抓取HTTP服务器和FTP服务器的...
  【JavaWeb专题】Spring MVC创建Web应用范例,轻松入门
  我的计算机书籍创作心得
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。