Vue3的使用

使用element-ui

npm i element-ui会报错,因为Vue3需要使用element-plus

vue create 项目名称
npm i element-plus -save

引入element-plus

import {createApp} from 'vue'
import App from './App'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
createApp(App).use(ElementPlus).mount('app')

路由

路由步骤

1、安装路由依赖

npm install vue-router@4

2、创建文件

First.vue

  <template>
     <div>111111</div>
  </template>

  //必须有下面这部分,否则组件不生效
  <script>
     export default{
          name:'FirsT'  //有时vue3设置严格模式,需要为小驼峰
     }
  </script>

Second.vue

  <template>
     <div>22222</div>
  </template>
  <script>
     export default{
          name:'SecOnd' 
     }
  </script>

3、设置链接及展示区

App.vue
<template>

//导航链接区域
<router-link to='first'>点击first</router-link>
<router-link to='second'>点击second</router-link>

//展示区域
<router-view></router-view>

</template>

4、创建router.js路由模块

//从vue-router引入方法
  import {createRouter,createWebHashHistory} from 'vue-router'

//导入路由
import First from './first.vue'
import Second from './second.vue'

//创建路由实例对象
const router =createRouter({
   history:createWebHashHistory(),
   routes:[
          {path:'/',      redirect:'/first'},
          {path:'/first', component:First},
          {path:'/second',component:Second}
          ]
})

//导出实例对象
export default router

5、在main.js导入并挂载路由

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'


const app=createApp(App)
app.use(router)
app.mount('#app')

或者

createApp(App).use(router).mount('#app')

二级路由

注意!!下面这种在二级路由跳一级路由会出现问题(路由残留)

组件位置

first.vue

<template>

<router-link to='/first/tab1'>Tab1按钮</router-link>
<router-link to='/first/tab1'>Tab1按钮</router-link>

<router-view></router-view>

</template>

router路由模块

import {createRouter,createWebHashHistory} from 'vue-router'

import First from './First.vue'
import Tab1 from './Tab1.vue'
import Tab2 from './Tab2.vue'

const router =createRouter({
    history : createWebHashHistory(),
    routes:[
              { path:'/first',
                component:First,
                redirect:'/first/Tab1',  //子路由重定向,需要绝对地址
                children:[
                           {path:'Tab1',component:Tab1},
                           {path:'Tab2',component:Tab2},
                         ]
              }
          ]
    })

解决方式:使用name命名路由(一级路由加name,二级正常写)

一级路由的导航链接

App.vue

<template>

    <router-link :to="{name:'firstvue'}">first按钮</router-link>
    <router-link :to="{name:'secondvue'}">second按钮</router-link>

    <router-view></router-view>

</template>

router.js

  import {createRouter,createWebHashHistory} from 'vue-router'

import First from './first.vue'
import Second from './second.vue'
import Tab from './tab.vue'

const router =createRouter({
   history:createWebHashHistory(),
   routes:[
            {path:'/first', 
             component:First,
             name:'firstvue',
             children:[{path:'tab',component:Tab}]},

            {path:'/second',component:Second,name:'secondvue'}
          ]
})

export default router

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值