百科狗-知识改变命运!
--

vue-router 入门安装 - router-view 匹配组件 router-link 创建链接 - vue router(路由)

梵高1年前 (2023-11-21)阅读数 20#技术干货
文章标签路由

vue-router 入门安装

提示:这是与 Vue 3 匹配的vue-router 4

 npm 安装
npm install vue-router@4

 yarn 安装
yarn add vue-router@4


用Vue+Vue Router创建单页应用非常简单:通过Vue,我们已经用组件组成了我们的应用。当加入Vue Router时,我们需要做的就是将我们的组件映射到路由上,让Vue Router知道在哪里渲染它们。下面是一个基本的例子:

HTML

html 文件 

Hello App!

Go to Home Go to About


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

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


JavaScript

// 1. 定义路由组件.
// 也可以从其他文件导入
const Home = { template: '
Home
' } const About = { template: '
About
' } // 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') // 现在,应用已经启动了!

vue-router 入门安装 - router-view 匹配组件 router-link 创建链接 - vue router(路由)

通过调用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')
      }
    },
  },
}

要在setup()函数中访问路由,请调用useRouteruseRoute函数。

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

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)