vue改错总结

vue表单和表格一起使用的时候,表格里非编辑框不再使用v-model进行双向数据 绑定,当tabledatase的数据发生变化时候,会自动渲染新的数据,但是可便捷table单元格需要用到插槽技术,当更新name的时候才会 自动渲染
<template>
  <div>
    <el-form :model="form">
      <el-table :data="tableData" style="width: 100%">
      
        <el-table-column prop="name" label="员工姓名">
          <template slot-scope="scope">
            <el-input v-model="scope.row.name"></el-input>
          </template>
        </el-table-column>
        
        
      </el-table>
      <el-button type="text" size="small" @click="handleSendDataToBackend()">综合评估</el-button>
    </el-form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      form: {}, 
      tableData: [
        { id: 1, name: '张三' },
        { id: 2, name: '李四' },
       
      ],
    };
  },
  methods:{
    handleSendDataToBackend(){
     console.log(this.tableData)
    }
  }
};
</script>

两个vue界面 传值,在原页面里定义方法,方法里调用router的push方法携带参数传值,我在表格的最后一列定义了一个点击事件,点击该按钮可以携带数据跳转

表格最后一列:

<el-table-column label="操作" width="100">
        <template #default="{ row }">
          <el-button type="text" size="small" @click="handleSendDataToBackend(row)">综合评估</el-button>
        </template>
      </el-table-column>

在原页面的method里实现该方法:

navigateToComAsses(row) {
      console.log(row)
      this.$router.push({ name: 'ComAsses', params: { data: row } });
    },

然后很重要的一点是index.js(router里)需要设置好组件名和你跳转的路径,其中路径你随意,但是在index.js里组件的name值就是标红的地方

{
        path: '/menu/ComAsses/:data',
        name: 'ComAsses',
        component: ComAsses,
      },
      

然后就是在目标页面接收参数,调用钩子函数接受,定义一个空的集合,这个集合就是你的数据源,例如你表格的 :data=“***”其中*的把内容

   data(){
            return{
                originalTableData: [],
                displayedTableData: [],
            }
        },
 
    created(){
        
        this.displayedTableData = [this.$route.params.data];
        console.log(this.displayedTableData)
        
    }

这里有个很容易出错的点就是标注位置,解释一下这一行,this.$route.params.data就是在发送参数的时候那个params:data的内容,相当与键值对,params是集合名称,data是键,row是值,,所以this.$route.params.data

就等于row,这是一行数据,其内容是一个集合,类似于{id:‘***’,name: '****'}这个样子,如果要把这一行数据展示到表格里,那么就必须在前面就一个中括号,也就是说相当于把row当做一个集合,就变成了[{}]这么个格式。

这里很容易被忽略。

posted @ 2024-02-03 18:32  cojames  阅读(2)  评论(0编辑  收藏  举报