国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3+element-plus Dialog對(duì)話框的使用 與 setup 寫法的使用

這篇具有很好參考價(jià)值的文章主要介紹了vue3+element-plus Dialog對(duì)話框的使用 與 setup 寫法的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一. 傳統(tǒng)寫法不使用setup語法糖

方式一:通過v-model的方式實(shí)現(xiàn)子組件的顯示與隱藏

  1. 父組件的內(nèi)容
<template>
  <div>
    <el-button @click="open">打開</el-button>
    <Child v-model:visible="flag" ></Child>
  </div>
</template>

<script>
  import { ref, watch } from 'vue'
  import Child from "../components/Child.vue"

  export default {
    components: {
      Child
    },

    setup() {
      const flag = ref(false)

      const open = () => {
        flag.value = true
      }
      
      watch(() => flag.value , (val) => {
        console.log("監(jiān)聽flag值得變化:", val)
      })

      return {
        flag,
        open
      }
    }
  }
</script>
  1. 子組件內(nèi)容
<template>
  <div class="hello">
    <el-dialog title="提示" v-model="dialogVisble" width="30%" :before-close="close">
      <span>這是一段信息</span>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="close">取 消</el-button>
          <el-button type="primary" @click="confirm">確 定</el-button>
        </span>
      </template>
    </el-dialog>
  </div>
</template>

<script>
  import { ref, watch } from 'vue'

  export default {
    props: {
      visible: {
        type: Boolean,
        default: false
      }
    },

    setup(props, ctx) {

      const dialogVisble = ref(false)

      const close = () => {
        ctx.emit("update:visible", false);
      };

      const confirm = () => {
        console.log('你點(diǎn)擊了確定按鈕')
        ctx.emit("update:visible", false);
      }

      watch(() => props.visible, (val) => {
        console.log(props.visible, val);
        dialogVisble.value = val
      });

      return {
        dialogVisble,
        confirm,
        close
      }
    }
  }
</script>

方式二:通過為元素綁定ref的方式實(shí)現(xiàn)子組件的顯示與隱藏

  1. 父組件的內(nèi)容
<template>
  <div>
    <el-button @click="open">打開</el-button>
    <Child ref="visibleDialog"></Child>
  </div>
</template>

<script>
  import { ref } from 'vue'
  import Child from "../components/Child.vue"

  export default {
    components: {
      Child
    },

    setup() {
      const visibleDialog = ref(null)

      const open = () => {
        visibleDialog.value.dialogVisble = true
      }

      return {
        visibleDialog,
        open
      }
    }
  }
</script>
  1. 子組件內(nèi)容
<template>
  <div class="hello">
    <el-dialog title="提示" v-model="dialogVisble" width="30%" :before-close="close">
      <span>這是一段信息</span>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="close">取 消</el-button>
          <el-button type="primary" @click="confirm">確 定</el-button>
        </span>
      </template>
    </el-dialog>
  </div>
</template>

<script>
  import { ref } from 'vue'

  export default {

    setup(props, ctx) {

      const dialogVisble = ref(false)

      const confirm = () => {
        console.log('你點(diǎn)擊了確定按鈕')
        dialogVisble.value = false
      }

      const close = () => {
        dialogVisble.value = false
      }

      return {
        dialogVisble,
        confirm,
        close
      }
    }
  }
</script>
2. setup語法糖寫法
  1. 父組件
<template>
  <Child :user="user" ref="visiableDialog"></Child>
  <el-button type="primary" @click="openDialog">打開彈窗</el-button>
</template>

<script setup>
import { reactive, ref } from 'vue'
import Child from "../components/childComponents.vue"

const visiableDialog = ref(null)

const user = reactive({
  name: '張三',
  age: 20
})

function openDialog() {
  visiableDialog.value.dialogVisble = true
  console.log(visiableDialog.value.dialogVisble);
}
</script>
  1. 子組件
<template>
  <div class="hello">{{ `${props.user.name}在學(xué)習(xí)VUE3` }}</div>
  <el-dialog title="提示" v-model="dialogVisble" width="30%">
    <span>這是一段信息</span>
    <template #footer>
      <span class="dialog-footer">
        <el-button @click="close">取 消</el-button>
        <el-button type="primary" @click="confirm">確 定</el-button>
      </span>
    </template>
  </el-dialog>
</template>

<script setup>
import { ref } from 'vue';
import { ElMessageBox } from 'element-plus'

// 定義控制彈窗顯隱的變量
const dialogVisble = ref(false)

// 接受父組件傳過來的值
// const props = defineProps({
//   user: {
//     type: Object,
//     default: {}
//   }
// })
// 或者
const props = defineProps(['user'])

function confirm() {
  ElMessageBox.confirm('確定關(guān)閉嗎?').then(() => {
    console.log('你點(diǎn)擊了確定按鈕')
    dialogVisble.value = false
  }).catch(() => { })
}

function close() {
  dialogVisble.value = false
}

// 將變量暴露出來
defineExpose({
  dialogVisble
})
</script>

總結(jié):文章來源地址http://www.zghlxwxcb.cn/news/detail-492109.html

  • 對(duì)于傳統(tǒng)寫法兩種方式來看,都有各自的優(yōu)缺點(diǎn),方式一在寫法上雖然麻煩了些,但是符合vue的設(shè)計(jì)原則,盡量少的操作Dom,以操作數(shù)據(jù)的方式達(dá)到了預(yù)期的目的。
  • 而方式二看起來趨向于我們在vue2中的寫法,雖然在寫法上簡便,但是在原理上則是操作了Dom,總之,兩種方式都可以達(dá)到我們想要的結(jié)果,至于使用那種方式看個(gè)人編寫代碼的習(xí)慣吧。
  • 對(duì)于使用setup語法糖寫法來看,代碼整體比較整潔,寫起來也相對(duì)方便快捷

到了這里,關(guān)于vue3+element-plus Dialog對(duì)話框的使用 與 setup 寫法的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Element UI Dialog 對(duì)話框改成固定高度,超出部分滾動(dòng)條滾動(dòng)

    Element UI Dialog 對(duì)話框改成固定高度,超出部分滾動(dòng)條滾動(dòng)

    elememt ui 中的el-dialog對(duì)話框如果 內(nèi)容過多高度會(huì)被無限拉長 。要將其設(shè)置成固定高度,此處我設(shè)置的是 頁面總高度的70% ,內(nèi)容過多時(shí)在對(duì)話框內(nèi)出現(xiàn) 滾動(dòng)條 。但是這樣設(shè)置會(huì)造成高度不能根據(jù)內(nèi)容自適應(yīng),始終是70%。可以有兩種方法實(shí)現(xiàn): 方法二 : 主要是運(yùn)用element ui 中

    2024年02月12日
    瀏覽(24)
  • element ui Dialog 對(duì)話框關(guān)閉后——清除表單的效驗(yàn)方法(更簡便寫法)

    element ui Dialog 對(duì)話框關(guān)閉后——清除表單的效驗(yàn)方法(更簡便寫法)

    效果展示: 主要代碼:在關(guān)閉彈窗時(shí) 有個(gè)組件的關(guān)閉的回調(diào) @close=\\\'cancel\\\' 調(diào)用這 cancel方法就可以實(shí)現(xiàn) 關(guān)閉的同時(shí)清除表單效驗(yàn) 完整代碼展示 父組件: 子組件:

    2024年02月03日
    瀏覽(19)
  • 記錄--vue3優(yōu)雅的使用element-plus的dialog

    記錄--vue3優(yōu)雅的使用element-plus的dialog

    擺脫繁瑣的 visible 的命名,以及反復(fù)的重復(fù) dom。 將 dialog 封裝成一個(gè)函數(shù)就能喚起的組件。如下: ? 首先定義了 dialogList,它包含了所有彈窗的信息。 component 使用 componet is 去動(dòng)態(tài)加載子組件 addDialog 調(diào)用喚起彈窗的函數(shù) closeDialog 關(guān)閉彈窗的函數(shù) 創(chuàng)建一個(gè)彈窗組件 在列表頁面

    2024年02月05日
    瀏覽(25)
  • 解決問題:Element ui組件中Dialog對(duì)話框只顯示遮罩層,不顯示彈框內(nèi)容

    解決問題:Element ui組件中Dialog對(duì)話框只顯示遮罩層,不顯示彈框內(nèi)容

    以下是Dialog 對(duì)話框的基本用法: 這個(gè)時(shí)候頁面只顯示了遮罩層,但是不顯示彈框的內(nèi)容,查閱文檔后,發(fā)現(xiàn)有這樣一條: append-to-body的默認(rèn)值是false,所以需要自己在el-dialog標(biāo)簽中手動(dòng)設(shè)置為true, ?加上之后彈框內(nèi)容就可以顯示了。

    2024年02月06日
    瀏覽(99)
  • vue 使用Dialog對(duì)話框使用過程中出現(xiàn)灰色遮罩問題

    vue 使用Dialog對(duì)話框使用過程中出現(xiàn)灰色遮罩問題

    問題描述:使用element ui 中的Dialog組件時(shí),彈框出現(xiàn)灰色遮罩,點(diǎn)擊彈出彈框按鈕時(shí),會(huì)顯示彈框,但是不會(huì)高亮,還需要在點(diǎn)擊一次彈框區(qū)域才會(huì)高亮,如下圖: 官方文檔解決方法如下圖(官網(wǎng)地址:https://element.eleme.cn/#/zh-CN/component/dialog),里面提供了一個(gè)append-to-body的屬性

    2024年02月14日
    瀏覽(22)
  • 解決 element-ui 中From 表單和Dialog 對(duì)話框搭配使用時(shí) resetFields重置方法無法清空數(shù)據(jù)的問題

    解決 element-ui 中From 表單和Dialog 對(duì)話框搭配使用時(shí) resetFields重置方法無法清空數(shù)據(jù)的問題

    在實(shí)際開發(fā)實(shí)現(xiàn)表格的增刪改查的時(shí)候,新增和修改通常共用一個(gè)彈窗以節(jié)省代碼量 ?當(dāng)我們先點(diǎn)擊修改的時(shí)候,會(huì)對(duì)彈窗表單進(jìn)行賦值,這個(gè)時(shí)候我們再點(diǎn)擊新增,會(huì)發(fā)現(xiàn)剛剛的表單數(shù)據(jù)仍然躺在表單中,并且使用resetFields沒有清除數(shù)據(jù) 其實(shí)resetFields()是生效了的,resetFie

    2024年02月16日
    瀏覽(31)
  • vue中使用el-dialog設(shè)置彈窗對(duì)話框在前端顯示為居中
  • element plus封裝el-select添加后綴圖標(biāo)并添加遠(yuǎn)程搜索和對(duì)話框功能

    element plus封裝el-select添加后綴圖標(biāo)并添加遠(yuǎn)程搜索和對(duì)話框功能

    當(dāng)提交的表單Form需要填某個(gè)實(shí)體的外鍵ID時(shí),當(dāng)然不可能使用el-input組件,這個(gè)適合提交字符串,然后用戶又不可能記住某個(gè)引用的外鍵ID,這時(shí)候使用el-select還是必要的。 el-select組件一般都作為下拉選擇框使用,但僅在數(shù)據(jù)量少時(shí),比較實(shí)用,比如性別的選擇:男女。 但當(dāng)

    2024年02月07日
    瀏覽(78)
  • Android開發(fā) Dialog對(duì)話框 DatePickerDialog

    Android開發(fā) Dialog對(duì)話框 DatePickerDialog

    1. AlertDialog AlertDialog是彈出的提醒對(duì)話框,有提示,確認(rèn),選擇等功能。 沒有公開的構(gòu)造方法,一般用AlertDialog.Builder來完成參數(shù)設(shè)置,最后調(diào)用create方法創(chuàng)建。 參數(shù)設(shè)置常用的方法: ?代碼: 效果圖: ? 2. DatePickerDialog DatePickerDialog在 AlertDialog上添加了日期選擇器DatePicker,

    2023年04月09日
    瀏覽(23)
  • C++ Qt開發(fā):標(biāo)準(zhǔn)Dialog對(duì)話框組件

    C++ Qt開發(fā):標(biāo)準(zhǔn)Dialog對(duì)話框組件

    Qt 是一個(gè)跨平臺(tái)C++圖形界面開發(fā)庫,利用Qt可以快速開發(fā)跨平臺(tái)窗體應(yīng)用程序,在Qt中我們可以通過拖拽的方式將不同組件放到指定的位置,實(shí)現(xiàn)圖形化開發(fā)極大的方便了開發(fā)效率,本章將重點(diǎn)介紹標(biāo)準(zhǔn)對(duì)話框 QInputDialog 、 QFileDialog 這兩種對(duì)話框組件的常用方法及靈活運(yùn)用。

    2024年02月04日
    瀏覽(99)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包