vue使用皮肤框架element-plus,element-ui是vue2.0的皮肤

vue使用皮肤框架element-plus,element-ui是vue2.0的皮肤,所以现在最新的vue3要使用element-plus皮肤。使用命令行安装element-plus:

 npm install element-plus

安装后:

bash 复制代码
{
  "name": "vue01",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "element-plus": "^2.4.3",
    "vue": "^3.3.8",
    "vue-router": "^4.2.5"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.5.0",
    "vite": "^5.0.0"
  }
}

安装后,需要在main.js里加载element-plus包:

javascript 复制代码
import {createApp} from 'vue'
import './style.css'
import App from './App.vue'

import router from './router'

import settings from "./settings.js";

// Vue.prototype.$settings = settings

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'


const app = createApp(App)

app.use(ElementPlus).use(router).mount('#app')

这样后,直接就可以在vue文件里面使用element-plus组件了。

如果要使用icon,先安装,再在main.js里面添加全局引用,就可以使用了。

main.js:

javascript 复制代码
import {createApp} from 'vue'
import './style.css'
import App from './App.vue'

import router from './router'

import settings from "./settings.js";

// Vue.prototype.$settings = settings

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

import * as ElementPlusIconsVue from '@element-plus/icons-vue'

const app = createApp(App)

// 加载图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component)
}

app.use(ElementPlus).use(router).mount('#app')

使用vue路由的时候,链接里面有#号,去掉#,需要使用没有hash的history。

路由index.js

javascript 复制代码
import {createRouter, createWebHashHistory,createWebHistory} from 'vue-router'
import A from '../components/a.vue'
import B from '../components/b.vue'
import H from '../components/HelloWorld.vue'

const router = createRouter({
    history: createWebHistory(),
    routes: [
        {
            path: "/",
            component: A,
        },
        {
            path: "/a",
            component: A,
        },
        {
            path: "/b",
            component: B,

        },
        {
            path: "/h",
            component: H,

        }
    ]
})
export default router

需要注意分辨两个函数:

createWebHashHistory
createWebHistory

有Hash的就是有#,没有Hash的就是链接里不带#,

使用上icon图标和element-plus链接,代码是:

App.vue

javascript 复制代码
<script setup>

import HelloWorld from "./components/HelloWorld.vue";

</script>

<template>
  <div>
    <div id="nav">
      <el-link href="/" type="danger">
        <el-icon :size="20">
          <Loading/>
        </el-icon>
        Home
      </el-link>
      |
      <el-link type="success" href="/b" to="/b">About</el-link>
      |
      <el-link href="/a" to="/a">HelloWorld</el-link>
      |
      <router-link to="/h" type="success">default</router-link>
    </div>

    <router-view></router-view>
  </div>

</template>

<style scoped>
.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
  transition: filter 300ms;
}

.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}

.logo.vue:hover {
  filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

el-link就是element-plus框架的链接,它的跳转是href,而vue-router的链接是router-link,它的跳转是to。

看链接里是没有#的,理由里使用的是

history: createWebHistory(),

没有Hash的函数。

如果使用createWebHashHistory函数,这个跳转链接怎么都不能成功,不知道为什么,因为所有的链接都解析成"/"这个路径了,后面加也没用。如果使用router-link就正常,el-link就不行,所有链接都是根目录链接,就是第一个链接有效,其他的都点击没有反应。

相关推荐
弄不死的强仔42 分钟前
可被electron等调用的Qt截图-录屏工具【源码开放】
前端·javascript·qt·electron·贴图·qt5
霸王蟹1 小时前
el-table组件样式如何二次修改?
前端·javascript·vue.js·笔记·学习·前端框架
star010-2 小时前
一文学会HTML编程之视频+图文详解详析
前端·网络·网络安全·html·html5
struggle20252 小时前
helm-dashboard为Helm设计的缺失用户界面 - 可视化您的发布,它提供了一种基于UI的方式来查看已安装的Helm图表
开发语言·ui·计算机视觉·编辑器·知识图谱
star010-2 小时前
【视频+图文详解】HTML基础3-html常用标签
前端·css·网络安全·html·html5·学习方法
无限大.7 小时前
前端知识速记:节流与防抖
前端
十八朵郁金香7 小时前
【VUE案例练习】前端vue2+element-ui,后端nodo+express实现‘‘文件上传/删除‘‘功能
前端·javascript·vue.js
学问小小谢8 小时前
第26节课:内容安全策略(CSP)—构建安全网页的防御盾
运维·服务器·前端·网络·学习·安全
LCG元8 小时前
Vue.js组件开发-实现全屏图片文字缩放切换特效
前端·javascript·vue.js
还是鼠鼠9 小时前
图书管理系统 Axios 源码__新增图书
前端·javascript·vscode·ajax·前端框架·node.js·bootstrap