vue.js专题

使用Element (vue从2.4迁移到2.5的坑)

2017-12-22  本文已影响0人  沃土前端社区_子鸣

简介

后台系统觉得饿了么的Element的UI还不错,于是打算开始使用Element做,使用这套UI框架的时候,下载下来的UI框架版本是2.0.8,在使用他的Table组件的时候发现slot-scope在vue2.4版本不支持,于是将Vue升级到2.5.9最新版本。

Element的Table组件(截图上传不了,可去官网查看)

<template>
  <el-table
    :data="tableData4"
    style="width: 100%"
    max-height="250">
    <el-table-column
      fixed
      prop="date"
      label="日期"
      width="150">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="120">
    </el-table-column>
    <el-table-column
      prop="province"
      label="省份"
      width="120">
    </el-table-column>
    <el-table-column
      prop="city"
      label="市区"
      width="120">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址"
      width="300">
    </el-table-column>
    <el-table-column
      prop="zip"
      label="邮编"
      width="120">
    </el-table-column>
    <el-table-column
      fixed="right"
      label="操作"
      width="120">
      <template slot-scope="scope">
        <el-button
          @click.native.prevent="deleteRow(scope.$index, tableData4)"
          type="text"
          size="small">
          移除
        </el-button>
      </template>
    </el-table-column>
  </el-table>
</template>

<script>
  export default {
    methods: {
      deleteRow(index, rows) {
        rows.splice(index, 1);
      }
    },
    data() {
      return {
        tableData4: [{
          date: '2016-05-03',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        }, {
          date: '2016-05-02',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        }, {
          date: '2016-05-04',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        }, {
          date: '2016-05-01',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        }, {
          date: '2016-05-08',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        }, {
          date: '2016-05-06',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        }, {
          date: '2016-05-07',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        }]
      }
    }
  }
</script>

升级后新问题

升级vue后发现新问题,多选单选不能使用了,看了下代码,由于习惯性一直没找出来,后面才发现,vue2.4升级到vue2.5.9后watch方法也有所变化.

vue2.4.0还可以这样:
watch:{
  data: {
       handler: function(val, oldVal) {
        console.log("改变后的新值为:"+val);
        console.log("改变前的旧值为:"+oldVal);
      },
      deep:true
  }
}
而vue2.5.9这样完全监控不到,只能改为:
watch:{
  data(val, oldVal): {
        console.log("改变后的新值为:"+val);
        console.log("改变前的旧值为:"+oldVal);
  }
}

碰到同样问题的希望这篇文章可以帮你解决问题。工作随笔记载

上一篇下一篇

猜你喜欢

热点阅读