05 創新實訓記錄 Vue元件選擇性視覺化

2021-10-07 11:16:35 字數 3098 閱讀 9078

在實現後台管理頁面的時候有乙個頁面需要實現:管理員對資料庫進行備份開啟和關閉的頁面。我當時的就想到了,如果開啟備份,那麼需要設定一些相應的配置,例如備份間隔時間、備份資訊、備份開啟的時間段。那麼這個該如何實現就成了乙個問題

我使用的是iview元件庫,採取乙個switch用來控制當前是否處於備份狀態。而這個狀態是要從資料庫裡獲取的。那麼要實現選擇性視覺化,就要實現switch開啟的時候,顯示備份間隔時間、備份資訊、備份開啟的時間段三個資訊,如果switch關閉的時候,那麼就把這三個資訊填寫元件隱藏掉。

通過設定乙個變數來根據switch關聯的@on-change關聯的函式來切換值。這樣利用:v-if與:v-show都可以說實現條件判斷下的選擇性視覺化。

當然v-if和v-show是有一定區別的

v-if 是「真正」的條件渲染,因為它會確保在切換過程中條件塊內的事件***和子元件適當地被銷毀和重建。

v-if 也是惰性的:如果在初始渲染時條件為假,則什麼也不做——直到條件第一次變為真時,才會開始渲染條件塊。

相比之下,v-show 就簡單得多——不管初始條件是什麼,元素總是會被渲染,並且只是簡單地基於 css 進行切換。

一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在執行時條件很少改變,則使用 v-if 較好。

相對於使用一些vue的框架,我現在更加傾向於純css實現。

將需要選擇性視覺化的元件放到同乙個div下,設定style

:style="visibility"
因為是動態的,所以一定要在style前加「冒號」。那麼這個visibility在data中定義為空值。當然,在created的時候就需要從資料庫介面進行獲取當前的狀態了並更新visibility。

通過switch的狀態,進行if語句的判斷,如果switch的status是true,則

this.visibility = "visibility:visible";
弱勢status是false,則

this.visibility = "visibility:hidden";
首先,我們要注意,一定要用到的方法要保證所需要的元件隱藏後是占有元件空間的,否則之後的確認按鈕會因為switch狀態上下移動

一定要做好提醒與二次確認的工作細節,如果沒有相應的提醒與二次確認,顯示應用中是很容易出現誤操作的現象。

資料庫備份介面h1

>

:model

="formitem"

:label-width

="140"

class

="form"

>

label

="當前是否開啟備份"

>

:checked.sync

="formitem.switch"

size

="large"

@on-change

="change"

>

slot

="open"

>

開啟span

>

slot

="close"

>

關閉span

>

i-switch

>

form-item

>

i-form

>

:model

="formitem"

:label-width

="140"

class

="form"

:style

="visibility

">

label

="備份頻率"

>

:model.sync

="formitem.frequency"

placeholder

="請選擇"

>

value

="1"

>

1天1次i-option

>

value

="3"

>

3天1次i-option

>

value

="5"

>

5天1次i-option

>

value

="7"

>

7天1次i-option

>

i-select

>

form-item

>

label

="開啟時間段"

>

type

="datetimerange"

placeholder

="請選擇備份時間段"

:value.sync

="formitem.date"

>

date-picker

>

form-item

>

label

="備註資訊"

>

:value.sync

="formitem.note"

placeholder

="請輸入"

>

i-input

>

form-item

>

i-form

>

type

="primary"

class

="commit"

@click

="confirm"

>

確認i-button

>

div>

template

>

14 創新實訓記錄 Vue跨域問題

首先什麼是跨域?由於瀏覽器同源策略,凡是傳送請求url的協議 網域名稱 埠三者之間任意乙個與當前頁面位址不同即為跨域。跨域通常是一下情況組成的 處在不同的ip下 處在同一ip下的不同埠 網路協議不一致 網域名稱不同或子網域名稱不同 出現跨域問題,跨域問題尤其是體現在vue前端通過axios進行htt...

6 29創新實訓工作記錄2

name為檔名稱,key為關鍵字 defdataforwordcloud name,key inputs readtxt name jieba.analyse.set stop words filefeaturepath pattern re.compile r u4e00 u9fa5 output...

3dCG 期中創新實訓記錄

本次記錄主要內容為 第三週完成的主要工作 第一輪場景材質和燈光布置渲染 第四周的主要工作 動作捕捉 3 4周,也就是四月初我們的三維製作團隊主要進行專案的中期階段。我們完成的任務有兩個主要場景的白模附上材質和顏色,擺放燈光,以及動作設計與彩排,實際運用光學動作捕捉裝置捕捉。我完成的主要任務為 1 單...