首页 > 其他分享 >037、Vue3+TypeScript基础,使用router.push进行导航式路由跳转

037、Vue3+TypeScript基础,使用router.push进行导航式路由跳转

时间:2024-08-20 21:53:46浏览次数:10  
标签:vue color App router TypeScript Vue3 import 跳转 路由

01、main.js代码如下:

// 引入createApp用于创建Vue实例
import {createApp} from 'vue'
// 引入App.vue根组件
import App from './App.vue'

//引入路由
import router from './router'

const app = createApp(App);
//使用路由
app.use(router);
// App.vue的根元素id为app
app.mount('#app')

02、index.ts代码如下:

//创建路由并暴露出去
import {createRouter, createWebHistory} from 'vue-router'
import Home from '@/view/Home.vue'
import About from '@/view/About.vue'
import News from '@/view/News.vue'

const router = createRouter({
    history: createWebHistory(),
    routes: [
        {name: 'myHome', path: '/home', component: Home},
        {name: 'myAbout', path: '/about', component: About},
        {name: 'myNews', path: '/news', component: News},
    ]
})

export default router

03、App.vue代码如下:

<template>
  <div class="app">
    <h2 class="title">App.Vue路由测试</h2>
    <!-- 导航区-->
    <div class="navigate">
      <router-link to="/Home" class="nav-button">首页</router-link>
      <router-link :to="{name:'myNews'}" class="nav-button">新闻</router-link>
      <router-link :to="{path:'/about'}" class="nav-button">关于</router-link>
      <button @click="jmp">跳转</button>
    </div>

    <!-- 内容区-->
    <div class="mai-content">
      <RouterView></RouterView>
    </div>
  </div>
</template>

<script lang="ts" setup name="App">
// 界面会根据当前路由的变化,在RouterView所在的位置渲染不同的组件
import {RouterView} from 'vue-router'
import router from "@/router";

function jmp() {
  router.push('/News')
}

</script>

<style scoped>
.app {
  background-color: #ddd;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}

.nav-button {
  display: inline-block; /* 让链接显示为块级元素,以便应用宽度和高度 */
  padding: 10px 20px; /* 内边距 */
  margin: 0 5px; /* 外边距,用于按钮之间的间隔 */
  text-decoration: none; /* 移除下划线 */
  color: white; /* 文本颜色 */
  background-color: #007bff; /* 背景颜色 */
  border-radius: 5px; /* 边框圆角 */
  transition: background-color 0.3s; /* 平滑过渡效果 */
}

.nav-button:hover {
  background-color: #0056b3; /* 鼠标悬停时的背景颜色 */
}

.nav-button.router-link-active {
  background-color: #28a745; /* 当前激活(路由匹配)时的背景颜色 */
}

.mai-content {
  /* 添加边框样式 */
  border: 2px solid #000; /* 边框宽度、样式和颜色 */
  border-radius: 5px; /* 可选:添加边框圆角 */
  padding: 20px; /* 可选:给内部内容添加一些内边距 */
  margin: 20px; /* 可选:给元素添加一些外边距,以便与其他元素隔开 */
}
</style>

04、About.vue代码如下:

<template>
  <div class="about">
    <h2>我是About页面</h2>
  </div>
</template>

<script setup lang="ts" name="about">
</script>

<style scoped>
</style>

05、Home.vue代码如下:

<template>
  <div class="home">
    <h2>我是Home页面</h2>
  </div>
</template>

<script setup lang="ts" name="home">
</script>

<style scoped>
</style>

06、New.vue代码如下:

<template>
  <div class="news">
    <h2>我是News页面</h2>
  </div>
</template>

<script setup lang="ts">
</script>

<style scoped>
</style>

07、浏览器效果如下:

 

标签:vue,color,App,router,TypeScript,Vue3,import,跳转,路由
From: https://www.cnblogs.com/tianpan2019/p/18370403

相关文章

  • 036、Vue3+TypeScript基础,路由中使用replace不让前进后退
    01、代码如下:<template><divclass="app"><h2class="title">App.Vue路由测试</h2><!--导航区--><divclass="navigate"><router-linkreplaceto="/Home"class="nav......
  • uni-app vue3 实现微信朋友圈和朋友分享功能
     1.新建share.jsexportdefault{data(){return{}},//1.配置发送给朋友onShareAppMessage(){return{title:'分享的标题',//分享的标题path:'pages/index',//点击分享链接之后进入的页面路径imageUrl:''//分享发......
  • vue3记录
    vue相关配置1、scss配置//安装命令npminstallsass-loadersass-D//vite.config.js文件css:{//css预处理器preprocessorOptions:{scss:{//引入mixin.scss这样就可以在全局中使用mixin.scss中预定义的变量了//给导入的路......
  • vue3一种page结构
    <template><view></view></template><scriptsetup>//引入生命周期,import{onLoad,onReady,onShareAppMessage,onShow}from"@dcloudio/uni-app";//引入计算属性import{computed,watch,getCurrentInstanc......
  • 创建uni-app项目(vue3+ts+vite)
     npxdegitdcloudio/uni-preset-vue#vite-tsm-uni-demo1跳转到对应目录,装包,运行cdm-uni-demo1yarnyarndev:h5tsconfig.json:{"extends":"@vue/tsconfig/tsconfig.json","compilerOptions":{"ignoreDeprecations&quo......
  • 学习vue3——分页(前、后端分页两种)
    一、前端分页 后端将所有数据给前端,前端来实现分页1<template>2<divclass="flexitems-centerjustify-centermt-5">3<el-pagination4background5v-model:current-page="currentPage1"6......
  • TypeScript学习之旅--编译选项-tsconfig.json
    上一篇文章提到了tsconfig.json文件中的简单配置项,如include、extends、exclude,本篇文章我们了解一下编译器选择compilerOptions1、target  用来指定ts被编译为js的ES版本有固定值,例如:‘es3’ 'es5' 'es6''es2015' 'es2018'等“target”:"es2915"2、moud......
  • vue3 响应式 API:computed()
    介绍基本概念:computed()接收一个getter函数或者一个包含getter和setter函数的对象作为参数,并返回一个基于原始响应式数据计算得到的新的响应式数据对象。计算属性的值会根据其依赖的响应式数据自动更新,当依赖的数据发生变化时,计算属性的值也会自动重新计算。返......
  • vue3---vite框架
    在使用VUE3的时候,可以使用vite脚手架:Vite的特点:1.快速的冷启动,不需要等待打包2.即时的热模块更新3.真正的按需编译,不用等待整个项目编译完成1、构建vite项目npminitvite@latest#初始化vite项目或者npmcreatevite@latest#创建vite项目选择Vue根据醒目需要选......
  • 033、Vue3+TypeScript基础,路由传参时候把层级脱掉
    01、Datail.vue代码如下:<template><ulclass="news-list"><li>编号:{{route.query.id}}</li><li>编号:{{route.query.title}}</li><li>编号:{{route.query.content}}</li></ul></tem......