Vue+ElementUi实现点击表格中链接进行页面跳转和路由

1、页面跳转,先看效果

 点击表格中的asin会跳转到亚马逊购物界面

怎么做的呢,直接上代码

<el-table-column
        prop="asin"
        label="asin"
        width="150"
        fixed>
        <template slot-scope="scope">
          <el-link :href="scope.row.url" type="primary" target="_blank">{{scope.row.asin}}</el-link>
        </template>
      </el-table-column>

asin那一列通过<template>标签把scope传进去,scope是包含这一行的信息的,在标签里面使用<el-link>标签配合数据里面的url实现页面跳转,获取某个属性可以通过scope.row.属性名 获取

2、路由切换加传参数,先看效果

 点击标题

可以看到路由切换到产品分析了,并且asin数据也传递过去了

实现直接看代码(需要注意的是需要传参的话只能使用name属性,使用path属性跳转是不能传递参数的)

<el-table-column
        prop="title"
        label="标题"
        width="150"
        :show-overflow-tooltip="true">
        <template slot-scope="scope">
          <router-link :to= "{name: 'productsAnalysis',params: {asin: scope.row.asin }}">
            <span>
              {{scope.row.title}}
            </span>
          </router-link>
        </template>
      </el-table-column>

可以看到路由切换与页面跳转类似,都是通过<template>标签实现的,区别就是<router-link>里面直接

{{scope.row.title}}不好使,需要借助<span>标签实现内容展示

路由切换使用路由名字

productsAnalysis,点击标题时路由器会找到productsAnalysis路由,并且把参数params传过去,看一下我的路由怎么实现的吧
{
    path: '/console',
    component: Layout,
    redirect: '/console/productsAnalysis',
    name: 'console',
    meta: { title: '销售', icon: 'el-icon-s-help' },
    children: [
      {
        path: 'productsAnalysis',
        name: 'productsAnalysis',
        component: () => import('@/views/products/productsAnalysis'),
        meta: { title: '产品分析', icon: 'table' }
      },
      {
        path: 'productPerspective',
        name: 'productPerspective',
        component: () => import('@/views/products/productPerspective'),
        meta: { title: '产品透视', icon: 'table' }
      }
    ]
  },

可以看到路由名为productsAnalysis的会跳转到

@/views/products/productsAnalysis组件

 看一下productsAnalysis组件怎么拿到参数的

<template>
<dev>
  <h1>ProductsAnalysis</h1>
  <h1>{{asin}}</h1>
</dev>
</template>

<script>
import router from '@/router'
export default {
  data(){
    return{
      asin: null
    }
  },
  created() {
    this.asin = this.$route.params.asin
  }
}
</script>

<style scoped>

</style>

直接

this.$route.params.asin就能拿到路由传过来的参数

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue和Element UI都是现代化的前端框架,各自拥有强大的API和功能。在Vue,我们可以简单地使用v-for指令和props从服务器加载表格数据,并在页面上呈现出来。然后,我们可以使用v-on指令(或简化的@符号)来监听单元格的点事件。当单元格被点时,我们可以使用Element UI的Dialog组件来呈现一个弹框。 具体实现过程如下: 1. 首先,我们需要安装Vue和Element UI。你可以单独下载这两个框架,然后将它们引入你的项目,或者你可以使用npm来安装它们: npm install vue npm install element-ui 2. 然后,我们需要从服务器加载表格数据。假设数据已经存储在组件的data属性,并且我们使用了一个简单的表格模板: <table> <thead> <tr> <th>名称</th> <th>价格</th> <th>描述</th> </tr> </thead> <tbody> <tr v-for="(item, index) in items" :key="index"> <td>{{ item.name }}</td> <td>{{ item.price }}</td> <td>{{ item.description }}</td> </tr> </tbody> </table> 3. 下来,我们需要监听单元格的点事件。我们可以为每个单元格添加一个事件处理程序,并从事件对象获取所点的单元格的数据。为了简化代码并提高可维护性,我们可以将单元格的点事件封装在一个自定义组件: <template> <td @click="showDialog">{{ value }}</td> </template> <script> export default { props: ['value'], methods: { showDialog() { // 显示弹框 } } } </script> 4. 最后,我们需要使用Element UI的Dialog组件来创建一个弹框,用来显示所选单元格的详细信息。我们可以在自定义组件的showDialog方法使用Dialog组件来实现: <template> <td @click="showDialog">{{ value }}</td> </template> <script> export default { props: ['value'], methods: { showDialog() { this.$alert(this.value, '详细信息', { confirmButtonText: '确定' }) } } } </script> 在上面这个例子,我们使用了Element UI的$alert方法来创建一个弹框,其的文本内容就是我们所点单元格的数据。Dialog组件的具体使用方法可以在官方文档查看。 总结: 以上就是使用Vue和Element UI实现表格单元格后弹出弹框的简单实现方法。通过这个例子,我们可以看到Vue和Element UI的强大功能和易用性。如果你还不熟悉这两个框架,那么现在就是时候开始学习它们了!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值