最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue彈窗嵌入其它vue頁(yè)面的操作代碼

 更新時(shí)間:2022年11月14日 17:08:14   作者:ZWZhangYu  
這篇文章主要介紹了vue彈窗如何嵌入其它vue頁(yè)面,實(shí)現(xiàn)方式是將其他頁(yè)面作為組件傳入,在父頁(yè)面將該組件引入到彈框內(nèi),實(shí)例代碼簡(jiǎn)單易懂需要的朋友可以參考下

說明

【1】實(shí)現(xiàn)方式,將其他頁(yè)面作為組件傳入
【2】在父頁(yè)面,將該組件引入到彈框內(nèi),并通過動(dòng)態(tài)渲染進(jìn)行切換

在這里插入圖片描述

子組件,將要引入到彈框內(nèi)的頁(yè)面

<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
    </el-form>
    <el-table v-loading="loading" :data="recordList" @selection-change="handleSelectionChange">
    </el-table>
    <pagination/>
  </div>
</template>
<script>
export default {
  name: "Record",
  props: ['userId'],
  data() {
    return {
      // 遮罩層
      loading: true,
      title: "",
      // 查詢參數(shù)
      queryParams: {
        userId: null,
        userName: null
      }
    };
  },
  created() {
    this.queryParams.userId = this.userId;
    this.getList();
  },
  methods: {
    getList() {
      this.loading = true;
      // 執(zhí)行請(qǐng)求后臺(tái)數(shù)據(jù)
    }
  }
};
</script>

【1】構(gòu)建子頁(yè)面,上面是一個(gè)普通的頁(yè)面,其中頁(yè)面使用ElementUI作為布局框架,使用到了el-table表格和pagination分頁(yè)組件
【2】組件創(chuàng)建即created的時(shí)候,請(qǐng)求后臺(tái)加載數(shù)據(jù)。
【3】創(chuàng)建屬性變量props: [‘userId’],該參數(shù)用于父子組件傳值。

父頁(yè)面

<template>
  <div class="app-container">
    <el-dialog :title="title" :visible.sync="userDialogVisible"  v-if="userDialogVisible"  width="800px" append-to-body>
      <!--  傳遞給子組件的值     -->
      <UserInfo :userId="userId"></UserInfo>
      <div slot="footer" class="dialog-footer">
        <el-button @click="cancel()">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
// 導(dǎo)入需要彈框展示頁(yè)面的組件
import UserInfo from '../index/user'

export default {
  name: "父頁(yè)面",
  // 注冊(cè)組件
  components: {UserInfo},
  data() {
    return {
      // 需要和彈框頁(yè)面交互的參數(shù)
      userId: null,
      // 控制彈框是否展示標(biāo)識(shí)
      userDialogVisible: false
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** 展示用戶列表頁(yè)面 **/
    showUserInfoPage(row) {
      // 設(shè)置
      this.userDialogVisible = true;
      this.userId = row.id;
    },
    /** 關(guān)閉用戶列表頁(yè)面 **/
    cancel() {
      this.userDialogVisible = false;
    },
  }
};
</script>

父頁(yè)面通過彈框并將子頁(yè)面通過引入組件的方式包裹在彈框內(nèi),通過:visible.sync=“userDialogVisible” v-if="userDialogVisible"進(jìn)行彈框的展示以及組件的創(chuàng)建和銷毀,并且通過父子組件傳參的方式切換數(shù)據(jù)。注意這里需要使用v-if以便子組件可以在create()中動(dòng)態(tài)展示數(shù)據(jù)。

思考

對(duì)于類似需要根據(jù)特定參數(shù)動(dòng)態(tài)展示其他組件數(shù)據(jù)的時(shí)候,我們可以通過在可以給子組件傳遞其他參數(shù),在子組件watch中監(jiān)聽。通過子組件監(jiān)聽參數(shù)變量變化從而動(dòng)態(tài)展切換數(shù)據(jù)。
注意子組件渲染只會(huì)執(zhí)行一次created生命周期,如果非要將更改內(nèi)容寫在created中,就要配合 v-if 使用,將子組件用 v-if 包裹起來,每次都重新加載子組件。

組件 v-if 和 v-show 切換時(shí)生命周期鉤子的執(zhí)行

v-if
初始渲染
初始值為 false 組件不會(huì)渲染,生命周期鉤子不會(huì)執(zhí)行,v-if 的渲染是惰性的。
初始值為 true 時(shí),組件會(huì)進(jìn)行渲染,并依次執(zhí)行 beforeCreate,created,beforeMount,mounted 鉤子。

切換
false => true
依次執(zhí)行 beforeCreate,created,beforeMount,mounted 鉤子。
true => false
依次執(zhí)行 beforeDestroy,destroyed 鉤子。

v-show
渲染
無(wú)論初始狀態(tài),組件都會(huì)渲染,依次執(zhí)行 beforeCreate,created,beforeMount,mounted 鉤子,v-show 的渲染是非惰性的。

切換
對(duì)生命周期鉤子無(wú)影響,切換時(shí)組件始終保持在 mounted 鉤子```

到此這篇關(guān)于vue彈窗如何嵌入其它vue頁(yè)面的文章就介紹到這了,更多相關(guān)vue彈窗嵌入其它vue頁(yè)面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

宕昌县| 呼和浩特市| 临武县| 台北县| 江孜县| 天气| 满洲里市| 天等县| 中方县| 章丘市| 双牌县| 尤溪县| 子洲县| 乌苏市| 连江县| 郧西县| 新化县| 利津县| 那坡县| 星子县| 孟连| 隆昌县| 弋阳县| 平邑县| 邳州市| 府谷县| 枞阳县| 涿鹿县| 定结县| 沭阳县| 柳河县| 珠海市| 乌鲁木齐县| 商洛市| 福鼎市| 道孚县| 怀宁县| 宝丰县| 塔城市| 朝阳区| 鄱阳县|