使用element-plus中的e-link,点击后导致页面刷新怎么办?
<script setup>const props = defineProps([ 'article_id']);const url = '/articles/' + props.article_id;</script>
<template><el-link :href="url" class="text-size-2xl text-dark/75 decoration-none"> {{ article_id }} 这里是标题!!! </el-link></template>
但使用router-link就没问题,不会导致刷新
<template><router-link :to="url" class="text-size-2xl text-dark/75 decoration-none"> {{ article_id }} 这里是标题!!! </router-link></template>
路由配置如下:
import { createRouter, createWebHistory } from 'vue-router'import HomeView from '../views/HomeView.vue'import ArticleView from '../views/ArticleView.vue'const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', redirect: '/home' }, { path: '/home', name: 'home', component: HomeView }, { path: '/articles/:id', name: 'article', // component: () => import('../views/ArticleView.vue') component: ArticleView } ]})export default router
前端新手,求指点,谢谢!
如果是hash路由 前面拼接个#
<el-link :href="‘#’+url" class="text-size-2xl text-dark/75 decoration-none"> {{ article_id }} 这里是标题!!!</el-link>
这得看 el-link 的内部实现。很明显是使用 <a>
元素来实现跳转的。
<template> <a :class="linkKls" :href="disabled || !href ? undefined : href" :target="disabled || !href ? undefined : target" @click="handleClick" > <el-icon v-if="icon"><component :is="icon" /></el-icon> <span v-if="$slots.default" :class="ns.e('inner')"> <slot /> </span> <slot v-if="$slots.icon" name="icon" /> </a></template>
所以直接使用 router-link
就好了,如果要使用 el-link
的样式,可以通过插槽传入 router-link
。例如:
<el-link class="text-size-2xl text-dark/75 decoration-none"> <router-link :to="url">{{ article_id }} 这里是标题!!!</router-link></el-link>
或者在 el-link
上给点击事件做跳转处理。
你遇到的问题是因为<el-link>
是Element UI库中的一个组件,它只是一个简单的链接组件,它的行为类似于HTML中的<a>
标签。当你点击这个链接时,它会尝试导航到指定的URL,这通常会导致页面刷新。
另一方面,<router-link>
是Vue Router库中的一个组件。它用于在Vue应用程序中进行路由导航。当你点击<router-link>
时,Vue Router会捕获这个事件并阻止其默认的导航行为,然后它会根据路由配置进行导航,这通常不会导致页面刷新。
在你的情况下,你已经为/articles/:id
路径定义了一个路由,所以你应该使用<router-link>
而不是<el-link>
。你已经正确地使用了<router-link>
,并且它工作得很好。
如果你想继续使用<el-link>
并避免页面刷新,你可以尝试使用JavaScript来阻止其默认的导航行为。你可以通过添加一个点击事件监听器并在事件处理器中调用event.preventDefault()
来实现这一点。但是,这通常不是一个好的做法,因为它可能会导致一些不期望的副作用。
总的来说,如果你正在使用Vue Router进行路由导航,那么最好始终使用<router-link>
组件。它不仅与Vue Router的路由系统更好地集成,而且还可以避免一些与页面刷新相关的问题。
我有一个Angular的表单,里面有两个按钮标签。一个按钮提交上的表单。另一个按钮是纯导航使用。然而,当点击第二个按钮时,AngularJS会导致页面刷新,从而触发404。我在函数中删除了一个断点,它正在触发我的函数。如果我执行以下任何操作,它将停止: 如果我删除,则该按钮不会导致页面刷新 如果我注释掉函数中的代码,它不会导致页面刷新 如果我将按钮标记更改为锚定标记(
现在el-tree点后面和点前面的选择框都可以被选中,怎么设置可以使唤只点后面的文字才能被选中,直接点选择框不切换?
如题,这是官方文档:https://s-test.belle.cn/zh-CN/guide/installation.html,我没看懂,它是先执行npm install element-plus --save,后面怎么使用Vite呢?据我所知Vite是个脚手架工具,在这里是用来创建Vue3项目的吗? 官方安装文档:
![image.png](/img/bVc6L这个是写的html 这个是进入页面的时候获取到数据,添加默认的勾选框 我在改变了勾选框状态以后,刷新页面他会自动执行handleSelectionChange事件里面的SelectionChange事件,导致选中的也会变为没选中,如何解决有没有什么方法,麻烦给我指正一下
1.html 2.main.js 3.axios.js
使用vue3 element-plus el-calendar 点击某一格选中后能获取到对应的时间,element-plus文档里面没有change时间