欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關于Vue父子組件傳參和回調函數(shù)的使用

 更新時間:2023年05月11日 09:18:03   作者:gblfy  
這篇文章主要介紹了關于Vue父子組件傳參和回調函數(shù)的使用,我們將某段代碼封裝成一個組件,而這個組件又在另一個組件中引入,而引入該封裝的組件的文件叫做父組件,被引入的組件叫做子組件,需要的朋友可以參考下

關鍵點: 父組件給子組件動態(tài)傳參使用v-bind:屬性key(多個單詞用下劃線拼接) 子組件接收父組件傳參參數(shù)使用 props標簽,+屬性key多個單詞用駝峰形式拼接)

子組件定義回調父組件函數(shù) 子組件: v-on:change="uploadFile()

父組件: :after-upload=“afterUpload” 然后定一個afterUpload(resp)方法接收子組件傳過來的值

    <div class="col-sm-10">
                  <file :text="'上傳頭像1'"
                        :input-id="'image-upload'"
                        :suffixs="[ ['jpg', 'jpeg', 'png']]"
                        :after-upload="afterUpload">
                  </file>
<script>
import File from "../../components/file";
export default {
  components: {File},
  name: "business-teacher",
  data: function () {
  },
  mounted: function () {
  },
  methods: {
    afterUpload(resp) {
      let _this = this
      let image = resp.content;
      _this.teacher.image = image
    }
  }
}
</script>

子組件

<template>
  <div>
    <button type="button" v-on:click="selectFile()" class="btn btn-white btn-default btn-round">
      <i class="ace-icon fa fa-upload"></i>
      {{ text }}
    </button>
    <input class="hidden" type="file"
           ref="file"
           v-on:change="uploadFile()"
           v-bind:id="inputId+'-input'">
  </div>
</template>
<script>
export default {
  name: 'file',
  props: {
    text: {
      default: "上傳文件"
    },
    inputId: {
      default: "file-upload"
    },
    suffixs: {
      default: []
    },
    afterUpload: {
      type: Function,
      default: null
    },
  },
  data: function () {
    return {}
  },
  methods: {
    uploadFile() {
      let _this = this;
      let formData = new window.FormData();
      let file = _this.$refs.file.files[0];
      // 判斷文件格式
      let suffixs = _this.suffixs;
      let fileName = file.name;
      let suffix = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length).toLowerCase();
      let validateSuffix = false;
      for (let i = 0; i < suffixs.length; i++) {
        let suffix2 = suffixs[i] += ''
        if (suffix2.toLowerCase() === suffix) {
          validateSuffix = true;
          break;
        }
      }
      if (!validateSuffix) {
        Toast.warning("文件格式不正確,只支持上傳:" + suffixs.join(","));
        //解決 同一個文件上傳2次或者大于2次,不會發(fā)生變化
        $("#" + _this.inputId + "-input").val("");
        return
      }
      // key:"file"必須和后端controller參數(shù)名一致
      formData.append("file", file);
      Loading.show()
      _this.$api.post(process.env.VUE_APP_SERVER + '/file/admin/upload', formData).then((response) => {
        Loading.hide()
        let resp = response.data
        console.log("上傳文件成功:", resp)
        //回調父組件函數(shù)
        _this.afterUpload(resp)
        //解決 同一個文件上傳2次或者大于3次,不會發(fā)生變化
        $("#" + _this.inputId + "-input").val("");
      })
    },
    selectFile() {
      let _this = this
      // console.log("_this.inputId",_this.inputId)
      $("#" + _this.inputId + "-input").trigger("click");
    }
  },
}
</script>
<style scoped>
</style>

到此這篇關于關于Vue父子組件傳參和回調函數(shù)的使用的文章就介紹到這了,更多相關Vue父子組件回調函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue 1.x 交互實現(xiàn)仿百度下拉列表示例

    vue 1.x 交互實現(xiàn)仿百度下拉列表示例

    本篇文章主要介紹了vue 1.x 交互實現(xiàn)仿百度下拉列表示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • vue select組件的使用與禁用實現(xiàn)代碼

    vue select組件的使用與禁用實現(xiàn)代碼

    這篇文章主要介紹了vue--select組件的使用與禁用的實現(xiàn)代碼,非常不錯,具有參考借鑒價值 ,需要的朋友可以參考下
    2018-04-04
  • vue?tree封裝一個可選的樹組件方式

    vue?tree封裝一個可選的樹組件方式

    這篇文章主要介紹了vue?tree封裝一個可選的樹組件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue路由vue-router用法講解

    Vue路由vue-router用法講解

    這篇文章介紹了Vue路由vue-router的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 詳解vue axios用post提交的數(shù)據(jù)格式

    詳解vue axios用post提交的數(shù)據(jù)格式

    這篇文章主要介紹了詳解vue axios用post提交的數(shù)據(jù)格式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • vuex中mapActions的概念及基本用法

    vuex中mapActions的概念及基本用法

    mapActions 就是將組件中的函數(shù)映射為對應的action,通過本文我們了解了mapActions 大概是用來干什么的,接下來介紹一下 mapActions 的具體用法,感興趣的朋友一起看看吧
    2023-09-09
  • el-tree樹設置懶加載以及設置默認勾選方式

    el-tree樹設置懶加載以及設置默認勾選方式

    這篇文章主要介紹了el-tree樹設置懶加載以及設置默認勾選方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue實現(xiàn)分頁加載效果

    vue實現(xiàn)分頁加載效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)分頁加載效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Vue實現(xiàn)封裝樹狀圖的示例代碼

    Vue實現(xiàn)封裝樹狀圖的示例代碼

    這篇文章主要為大家詳細介紹了如何使用Vue實現(xiàn)封裝樹狀圖,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • Vue-router中path的設置方式

    Vue-router中path的設置方式

    這篇文章主要介紹了Vue-router中path的設置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02

最新評論