亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue動態組件表格如何實現

發布時間:2022-10-17 10:27:11 來源:億速云 閱讀:173 作者:iii 欄目:開發技術

今天小編給大家分享一下Vue動態組件表格如何實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Vue組件

數據源

//這里是HTML內容 這里通過下面的引入框架結構把數據源傳到框架中 還有匹配項
<Mytable :configList="configList" :configData="configData"></Mytable>

// 引入結構組件
import myCard from "./components/card";

// 注冊組件
components: { myCard },
     
 data() {
    return {
        // 這里定義數據列表
      configList: [
          // 這里是數據有源
          {
          text: "111",
          img: "/02.jpg",
          tap: "標簽1",
          switch: true,
          button: "按鈕1",
        },
      ],
       // 這里定義匹配項
      configData: [
      {
          table: "貨幣",
          porp: "text",
          name: "MyText",
        },
        {
          table: "圖片",
          porp: "img",
          name: "Myimg",
        },
        {
          table: "標簽",
          porp: "tap",
          name: "tag",
        },
        {
          table: "滑動開關",
          porp: "switch",
          name: "Btn",
          funName: (row) => {
            this.mySwitch(row);
          },
        },
        {
          table: "按鈕",
          porp: "button",
          name: "Mybtn",
          // 如果組件中需要動態綁定事件 在這里設置
          funName: (row) => {
            this.myBtn(row);
          },
        },
      ]
    }
 ]

框架結構組件

<div>
    // 這里接受數據組件傳遞過來的數據
    <el-table :data="configList">
      <!-- 文字表格區間 -->
        // 這里進行循環渲染數據
      <el-table-column
        align="center"
        v-for="(item, index) in configData"
        :key="index"
        :label="item.table"
      >
        <!-- 組件 -->
         // 動態組件 這里可以進行標簽 按鈕 圖片等 的別的組件進行循環渲染到表格中
        <template slot-scope="scope">
          <component
            :is="item.name"
            :value="scope.row"
            // 把每一項有點擊事件進行傳參
            @parentFun="fun(item.funName, scope.row)"
          ></component>
        </template>
      </el-table-column>
    </el-table>
  </div>

// 這里引用自己封裝的動態組件
import Myimg from "@/components/toConfigure/img.vue";
import tag from "@/components/toConfigure/tag.vue";
import Btn from "@/components/toConfigure/switch.vue";
import MyText from "@/components/toConfigure/text.vue";
import Mybtn from "@/components/toConfigure/button.vue";

// 進行注冊組件
components: {
    Myimg,
    tag,
    Btn,
    MyText,
    Mybtn,
  },
// 這里進行判斷每個按鈕時候有點擊事件 沒有為空  
methods: {
    fun(funName, row) {
      if (funName) {
        funName(row);
      }
    },
  },

// 這里接受傳過來的數據
 props: {
    configData: {
      type: Array,
    },
    configList: {
      type: Array,
    },
  },

這里我自己封裝了幾個組件

按鈕組件

<template>
    // 這里是按鈕
  <el-button round @click="btn">{{ value.button }}</el-button>
</template>

<script>
export default {
// 接受組件傳過來的值
  props: {
    value: {
      type: Object,
    },
  },
 // 這里進行綁定動態點擊事件
  methods: {
    btn() {
       // 這里接受傳參
      this.$emit("parentFun");
    },
  },
};
</script>

<style></style>

圖片組件

<template>
  <div>
    <el-image
      
      :src="Myimg"
       // 使用時候把這條注釋刪除 這個屬性是點擊圖片放大 不需要可以刪除
      :preview-src-list="[Myimg]"
    ></el-image>
  </div>
</template>

<script>
export default {
  props: {
    value: {
      type: Object,
    },
  },
  computed: {
    Myimg() {
      if (this.value.img.length > 0) {
          // "@/assets/images" 這個是圖片的根路徑 加上 傳遞過來的數據中圖片的名字
        return require("@/assets/images" + this.value.img);
      } else {
        return;
      }
    },
  },
};
</script>

<style></style>

滑動開關

<template>
  <div>
    <el-switch
      v-if="this.value.switch !== undefined"
      v-model="value.switch"
      active-color="#13ce66"
      inactive-color="#ff4949"
      @change="switchClick"
    ></el-switch>
  </div>
</template>

<script>
export default {
  props: {
    value: {
      type: Object,
    },
  },
  methods: {
    switchClick() {
      // 事件分發
      this.$emit("parentFun", this.value);
    },
  },
  mounted() {
    // console.log(this.value.button);
  },
};
</script>

<style></style>

tap組件

<template>
  <div>
    <el-tag v-if="value.tap.length > 0">{{ value.tap }}</el-tag>
  </div>
</template>

<script>
export default {
  props: {
    value: {
      type: Object,
    },
  },
};
</script>

<style></style>

text組件

<template>
  <div>
    {{ value.text }}
  </div>
</template>

<script>
export default {
  props: {
    value: {
      type: Object,
    },
  },
};
</script>

<style></style>

以上就是“Vue動態組件表格如何實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

岳池县| 临安市| 彝良县| 富川| 偃师市| 紫阳县| 平遥县| 南康市| 长沙市| 闽清县| 大庆市| 平陆县| 锡林浩特市| 兰州市| 伊吾县| 蓝山县| 怀仁县| 宜君县| 兴和县| 遵义市| 桐乡市| 黔江区| 盐山县| 保康县| 绥阳县| 东城区| 砀山县| 大渡口区| 长春市| 大关县| 宣化县| 松江区| 喜德县| 万山特区| 深水埗区| 集安市| 敦化市| 都匀市| 兴山县| 乌拉特前旗| 余江县|