Vue自定義元件資料的雙向繫結方法

2021-10-01 03:33:03 字數 3897 閱讀 9781

最近在學習餓了麼的vue專案製作的課件,課件內容給了我很大的啟發。在開發過程中,資料的單一性可以讓功能更加的安全。之前對vue的學習,更多的停留在父子單向資料繫結,當子元件資料變化時,無法直接影響到父元件。經過這段時間的學習,慢慢找到了一些資料雙向繫結的方法,稍微做了一下總結。

v-model本質上就是語法糖,具體使用方法如下:

父元件:

v-model

="isshowcode"

:code-img

="codeimg"

>

q-code

>

export

default

,data()

;}};

子元件:

>

class

="qcode-container"

v-show

="show"

>

class

="popup-header"

@click

="closepopup"

>

>

div>

template

>

自定義model名的寫法

export

default

, props:

['isshow'],

data()

;}, watch:}}

, methods:}}

;

使用預設的value的寫法

export

default},

data()

;}, watch:}}

, methods:}}

;

.sync的官方文件:sync-修飾符

父元件:

:select-type.sync

="selecttype"

:only-content.sync

="onlycontent"

>

rating-select

>

export

default

,data()

;}, watch:

,onlycontent

(value)}}

;

子元件:

>

class

="rating-select"

>

class

="rating-type border-1px"

>

class

="block positive"

:class=""

@click

="select($store.state.rating_code.all)"

>

}class

="count"

>

}span

>

span

>

class

="block positive"

:class=""

@click

="select($store.state.rating_code.positive)"

>

}class

="count"

>

}span

>

span

>

class

="block negative"

:class=""

@click

="select($store.state.rating_code.negative)"

>

}class

="count"

>

}span

>

span

>

div>

class

="switch border-1px"

>

class

="iconfont"

:class=""

@click

="togglecontent"

>i

>

class

="text"

>

只看有內容的評價span

>

div>

div>

template

>

export

default},

selecttype:},

onlycontent:

, desc:;}

}},data()

;}, watch:

,onlycontent

(value)},

computed:);

},negatives()

);}}

, methods:

,togglecontent()

}};

當父元件傳入的資料是個物件的時候,子元件對該物件的修改會直接影響到父元件。

父元件:

:food

="food"

@cart-add

="drop"

>

cart-control

>

export

default

,data()

};}}

;

子元件:

>

class

="cart-control"

>

name

="move"

>

class

="cart-decrease"

v-show

="food.count"

@click.stop.prevent

="minuscart"

>

class

="iconfont"

>i

>

div>

transition

>

class

="cart-count"

v-show

="food.count"

>

}div

>

class

="cart-increase"

@click.stop.prevent

="addcart"

>

class

="iconfont"

>i

>

div>

div>

template

>

export

default;}

}}, methods:

else

this

.$emit

('cart-add'

, event.target);}

,minuscart()

}};

Vue 自定義元件資料雙向流動

現有乙個查詢頁面 index.vue 組成架構如下 需求 在表單元件中新增乙個下拉框元件a.vue,對地區 area 進行選擇,並做到資料能雙向流動,由於提交表單是在query,而下拉框資料放在a中,因此a中下拉框資料變化要更新到父元件的表單資料中。實現 表單元件query.vue model qu...

Vue 自定義元件雙向繫結

無論在任何的語言或框架中,我們都提倡 的復用性。對於vue來說也是如此,相同的 邏輯會被封裝成元件,除了復用之外,更重要的是統一管理提高開發效率。我真就接手過乙個專案,多個頁面都會用到的列表,沒有去封裝列表元件,只要有一點改動,每個頁面都得加上。很肯定的說,沒有用元件化開發的vue專案是沒有靈魂的。...

WPF自定義控制項資料繫結 雙向繫結

自己整了乙個自定義控制項usercontrol,功能就是乙個帶拼音篩選功能的combobox,不過發現資料繫結dataset的row的一列之後可以顯示值,但是更改之後不能更改到row裡,在textbox是正常的,如下 最後更改為這樣 binding path lx,mode twoway 就可以雙向...