• Vue Router(1)


    Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,功能包括:

    1、嵌套路由映射

    2、动态路由选择

    3、模块化、基于组件的路由配置

    4、路由参数、查询、通配符

    5、展示由 Vue.js 的过渡系统提供的过渡效果

    6、HTML5 history 模式或 hash 模式

    7、URL的正确编码

    用 Vue + Vue Router创建单页应用非常简单:

    通过 Vue.js, 我们已经用组件组成了我们的应用。当加入 Vue Router 时,我们需要做的就是将我们的组件映射到路由上,让 Vue Router知道在哪里渲染它们。

     HTML

    <script src="https://unpkg.com/vue@3"></script>
    <script src="https://unpkg.com/vue-router@4"></script>
    
    <div id="app">
      <h1>Hello App!</h1>
      <p>
        <!--使用 router-link 组件进行导航 -->
        <!--通过传递 `to` 来指定链接 -->
        <!--`<router-link>` 将呈现一个带有正确 `href` 属性的 `<a>` 标签-->
        <router-link to="/">Go to Home</router-link>
        <router-link to="/about">Go to About</router-link>
      </p>
      <!-- 路由出口 -->
      <!-- 路由匹配到的组件将渲染在这里 -->
      <router-view></router-view>
    </div>

    router-link

    请注意,我们没有使用常规的 a 标签,而是使用一个自定义组件 router-link 来创建链接。这使得 Vue Router 可以在不重新加载页面的情况下更改URL,处理URL的生成以及编码。

    router-view

    router-view 将显示与url对应的组件,你可以把它放在任何地方,以适应你的布局。

    JavaScript

    // 1. 定义路由组件.
    // 也可以从其他文件导入
    const Home = { template: '<div>Home</div>' }
    const About = { template: '<div>About</div>' }
    
    // 2. 定义一些路由
    // 每个路由都需要映射到一个组件。
    // 我们后面再讨论嵌套路由。
    const routes = [
      { path: '/', component: Home },
      { path: '/about', component: About },
    ]
    
    // 3. 创建路由实例并传递 `routes` 配置
    // 你可以在这里输入更多的配置,但我们在这里
    // 暂时保持简单
    const router = VueRouter.createRouter({
      // 4. 内部提供了 history 模式的实现。为了简单起见,我们在这里使用 hash 模式。
      history: VueRouter.createWebHashHistory(),
      routes, // `routes: routes` 的缩写
    })
    
    // 5. 创建并挂载根实例
    const app = Vue.createApp({})
    //确保 _use_ 路由实例使
    //整个应用支持路由。
    app.use(router)
    
    app.mount('#app')
    // 现在,应用已经启动了!

    通过调用 app.use(router), 我们可以在任意组件中以 this.$router 的形式访问它,并且以 this.$route 的形式访问当前路由:

    // Home.vue
    export default {
      computed: {
        username() {
          // 我们很快就会看到 `params` 是什么
          return this.$route.params.username
        },
      },
      methods: {
        goToDashboard() {
          if (isAuthenticated) {
            this.$router.push('/dashboard')
          } else {
            this.$router.push('/login')
          }
        },
      },
    }

    在整个文档中, 我们会经常使用 router 实例, 请记住, this.$router 与直接使用通过 createRouter 创建的 router 实例完全相同。我们使用 this.$router 的原因是,我们不想在每个需要操作路由的组件中都导入路由。

  • 相关阅读:
    对比使用Charles和Fiddler两个工具及利用Charles抓取https数据(App)
    Charles-安装和配置
    python算法-队列
    python算法-快速排序
    【Codeforces】383.DIV2
    static关键字
    UNIX环境高级编程--5
    【LeetCode】467. Unique Substrings in Wraparound String
    typedef关键字
    strcpy 和 memcpy自实现
  • 原文地址:https://www.cnblogs.com/zhishiyv/p/15900382.html
Copyright © 2020-2023  润新知