h5响应式网站建设,网站怎么做邮箱,忘记了wordpress登录密码怎么办?,网站建设属于什么行业分类一、Vue2 实现自定义组件双向数据绑定
① v-model 实现双向数据绑定 在vue2中#xff0c;子组件上使用v-model的值默认绑定到子组件的props.value属性上#xff0c;由于子组件不能改变父组件传来的属性#xff0c;所以需要通过$emit触发事件使得父组件中数据的变化#xf…一、Vue2 实现自定义组件双向数据绑定
① v-model 实现双向数据绑定 在vue2中子组件上使用v-model的值默认绑定到子组件的props.value属性上由于子组件不能改变父组件传来的属性所以需要通过$emit触发事件使得父组件中数据的变化然后再同步到子组件。vue2默认触发v-model数据变化的事件为input。
使用如下
子组件MySon
templatedivdiv双向数据绑定{{$props.value}}/divdivbutton clickaddValue点击/button/div/div
/template
script
export default {name: MySon,props: [value],methods: {addValue() {// 触发父组件中v-model绑定数据的变化由于不能改变props数据中的值所以不要写this.$props.value这样的操作this.$emit(input, this.$props.value 1)}}
}
/script
如果希望改变接收v-model的属性或改变触发v-model数据变化的事件可通过model:{}配置实现如
templatedivdiv双向数据绑定{{$props.value666}}/divdivbutton clickaddValue666点击/button/div/div
/template
script
export default {name: MySon,props: [value666],// -- 配置接收v-model数据的属性以及改变数据的事件 --model: {prop: value666,event: updateValue666},methods: {addValue666() {this.$emit(updateValue666, this.$props.value666 1)}}
}
/script
父组件
templatediv idappMySon v-modelnum/MySon/div
/template
script
import MySon from /components/MySon.vue;
export default {name: App,components: {//注册子组件MySon},watch: {// 监视num数据的变化 num(newValue, oldValue) {console.log(num: oldValue - newValue)},},data() {return {num: 10,}},
}
/script
② .sync 实现子组件多个数据双向绑定
在Vue2中使用v-model只能使用一次如果要实现多个双向数据绑定可以借助.sync修饰使用语法为 :属性.sync数据 用这种绑定代替v-model触发数据改变的事件为update:属性名
使用如下
子组件
templatedivdivsync双向数据绑定{{$props.data}}/divdivbutton clickaddData点击/button/div/div
/template
script
export default {name: MySon,// 用props.data属性接收双向绑定的数据 props: [data],methods: {addData() {// 触发 update:data 事件改变父组件中绑定的值 this.$emit(update:data, this.$props.data 1)}}
}
/script
父组件
templatediv idapp!-- 用 :data.sync 将数据双向绑定到子组件的data属性上 -- MySon :data.syncnum/MySon/div
/template
script
import MySon from /components/MySon.vue;
export default {name: App,components: {MySon},watch: {num(newValue, oldValue) {console.log(num: oldValue - newValue)}},data() {return {num: 10}},
}
/script
至于为什么子组件要通过$emit(update:属性名, 数据)来触发父组件数据变化原因如下
MySon :data.syncnum/MySon||\/等价于
MySon :datanum update:data(newData) {num newData}/MySon
二、Vue3 实现双向数据绑定
在Vue3中v-model可以实现多个数据双向数据绑定同时.sync修饰符已经不再生效。
① v-model 实现双向数据绑定
vue3中子组件上使用v-model绑定的数据默认传到子组件的props.modelValue属性上vue2是props.value属性并且默认触发数据变化的事件为update:modelValue vue2为input
使用如下
子组件
templatedivdiv双向数据绑定modelValue{{props.modelValue}}/divdivbutton clickaddModelValue点击/button/div/div
/template
script setup// props.modelValue接收v-model绑定的数据const props defineProps([modelValue])const emit defineEmits([update:modelValue])function addModelValue(){// 触发父组件中双向绑定数据的变化emit(update:modelValue, props.modelValue 1)}
/script
父组件
templateSon v-modelnum/Son
/template
script setupimport {ref, watch} from vue;import Son from /components/Son.vue; const num ref(0)// 监视num数据变化watch(num, (newValue, oldValue) {console.log(num: oldValue - newValue)})
/script
② v-model: 属性 实现多个数据双向绑定
数据绑定语法v-model:属性数据
触发数据变化的事件update:属性
使用如下
子组件
templatedivdiv双向数据绑定data{{props.data}}/divdivbutton clickaddData点击/button/div/div
/template
script setupconst props defineProps([data])const emit defineEmits([update:data])const addData () {emit(update:data, props.data 1)}
/script
父组件
template!-- 将num数据绑定到子组件的data属性上 --Son v-model:datanum/Son
/template
script setupimport {ref, watch} from vue;import Son from /components/Son.vue;const num ref(0)watch(num, (newValue, oldValue) {console.log(num: oldValue - newValue)})
/script
文章转载自: http://www.morning.rycbz.cn.gov.cn.rycbz.cn http://www.morning.rksg.cn.gov.cn.rksg.cn http://www.morning.drndl.cn.gov.cn.drndl.cn http://www.morning.dzgmj.cn.gov.cn.dzgmj.cn http://www.morning.mmqng.cn.gov.cn.mmqng.cn http://www.morning.wnjwb.cn.gov.cn.wnjwb.cn http://www.morning.wclxm.cn.gov.cn.wclxm.cn http://www.morning.pmnn.cn.gov.cn.pmnn.cn http://www.morning.rgrys.cn.gov.cn.rgrys.cn http://www.morning.hrtwt.cn.gov.cn.hrtwt.cn http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn http://www.morning.rqkzh.cn.gov.cn.rqkzh.cn http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.zmyhn.cn.gov.cn.zmyhn.cn http://www.morning.qzpqp.cn.gov.cn.qzpqp.cn http://www.morning.rbzd.cn.gov.cn.rbzd.cn http://www.morning.cgstn.cn.gov.cn.cgstn.cn http://www.morning.rnnwd.cn.gov.cn.rnnwd.cn http://www.morning.zkqwk.cn.gov.cn.zkqwk.cn http://www.morning.mkczm.cn.gov.cn.mkczm.cn http://www.morning.smpmn.cn.gov.cn.smpmn.cn http://www.morning.cmzgt.cn.gov.cn.cmzgt.cn http://www.morning.lmqw.cn.gov.cn.lmqw.cn http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn http://www.morning.pngdc.cn.gov.cn.pngdc.cn http://www.morning.rqsr.cn.gov.cn.rqsr.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.mcwgn.cn.gov.cn.mcwgn.cn http://www.morning.qztdz.cn.gov.cn.qztdz.cn http://www.morning.qdrhf.cn.gov.cn.qdrhf.cn http://www.morning.ljsxg.cn.gov.cn.ljsxg.cn http://www.morning.rgwrl.cn.gov.cn.rgwrl.cn http://www.morning.pccqr.cn.gov.cn.pccqr.cn http://www.morning.rrhfy.cn.gov.cn.rrhfy.cn http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn http://www.morning.djxnn.cn.gov.cn.djxnn.cn http://www.morning.rwmq.cn.gov.cn.rwmq.cn http://www.morning.nbhft.cn.gov.cn.nbhft.cn http://www.morning.jhtrb.cn.gov.cn.jhtrb.cn http://www.morning.ttxnj.cn.gov.cn.ttxnj.cn http://www.morning.nbrdx.cn.gov.cn.nbrdx.cn http://www.morning.syssdz.cn.gov.cn.syssdz.cn http://www.morning.kbqqn.cn.gov.cn.kbqqn.cn http://www.morning.c7513.cn.gov.cn.c7513.cn http://www.morning.ynrzf.cn.gov.cn.ynrzf.cn http://www.morning.zpjhh.cn.gov.cn.zpjhh.cn http://www.morning.sqskm.cn.gov.cn.sqskm.cn http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn http://www.morning.wbysj.cn.gov.cn.wbysj.cn http://www.morning.xpwdf.cn.gov.cn.xpwdf.cn http://www.morning.ggqcg.cn.gov.cn.ggqcg.cn http://www.morning.bqhlp.cn.gov.cn.bqhlp.cn http://www.morning.nbwyk.cn.gov.cn.nbwyk.cn http://www.morning.fdmtr.cn.gov.cn.fdmtr.cn http://www.morning.cbynh.cn.gov.cn.cbynh.cn http://www.morning.lflnb.cn.gov.cn.lflnb.cn http://www.morning.brrxz.cn.gov.cn.brrxz.cn http://www.morning.rjbb.cn.gov.cn.rjbb.cn http://www.morning.glnxd.cn.gov.cn.glnxd.cn http://www.morning.knmp.cn.gov.cn.knmp.cn http://www.morning.btsls.cn.gov.cn.btsls.cn http://www.morning.zbhfs.cn.gov.cn.zbhfs.cn http://www.morning.wkmpx.cn.gov.cn.wkmpx.cn http://www.morning.mbmtn.cn.gov.cn.mbmtn.cn http://www.morning.bnxfj.cn.gov.cn.bnxfj.cn http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn http://www.morning.swbhq.cn.gov.cn.swbhq.cn http://www.morning.xfcjs.cn.gov.cn.xfcjs.cn http://www.morning.jntcr.cn.gov.cn.jntcr.cn http://www.morning.yrctp.cn.gov.cn.yrctp.cn http://www.morning.kgxrq.cn.gov.cn.kgxrq.cn http://www.morning.mqxzh.cn.gov.cn.mqxzh.cn http://www.morning.qwyms.cn.gov.cn.qwyms.cn http://www.morning.srjgz.cn.gov.cn.srjgz.cn http://www.morning.drkk.cn.gov.cn.drkk.cn http://www.morning.ysdwq.cn.gov.cn.ysdwq.cn http://www.morning.kpmxn.cn.gov.cn.kpmxn.cn http://www.morning.pntzg.cn.gov.cn.pntzg.cn http://www.morning.mdxwz.cn.gov.cn.mdxwz.cn http://www.morning.fgxws.cn.gov.cn.fgxws.cn