机构网站建设,网页框架是什么,山东济南最新事件,wordpress突然很卡目录 1、什么是v-model2、v-model实现原理3、实现示例3.1 实现text和textarea3.2 实现checkbox和radio3.3 实现select 1、什么是v-model
v-model 本质上是一颗语法糖#xff0c;可以用 v-model 指令在表单 input、textarea 及 select元素上创建双向数… 目录 1、什么是v-model2、v-model实现原理3、实现示例3.1 实现text和textarea3.2 实现checkbox和radio3.3 实现select 1、什么是v-model
v-model 本质上是一颗语法糖可以用 v-model 指令在表单 input、textarea 及 select元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。它负责监听用户的输入事件以更新数据并对一些极端场景进行一些特殊处理。数据不仅能从data流向页面还可以从页面流向data。v-model:value 可以简写为 v-model因为v-model默认收集的就是value值。v-model只能应用在表单类元素输入类元素上。
2、v-model实现原理
v-model本质上只是一颗语法糖真正的实现靠的还是v-bind和oninput事件。 v-bind绑定响应式数据触发oninput 事件并传递数据 v-model 在内部为不同的输入元素使用不同的属性并抛出不同的事件 text 和 textarea 元素使用 value 属性和 input 事件checkbox 和 radio 使用 checked 属性和 change 事件select 字段将 value 作为 prop 并将 change 作为事件。
3、实现示例
3.1 实现text和textarea
!DOCTYPE html
html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlescript srchttps://unpkg.com/vue3/dist/vue.global.js/script
/headbodydiv idappinput typetext placeholder请输入内容 :valueinfo inputchangetextarea name id cols30 rows10 :valueinfo inputchange/textarea/divscriptVue.createApp({data() {return {info: }},methods: {change(e) {this.info e.target.value}}}).mount(#app)/script
/body/html实现效果 3.2 实现checkbox和radio
!DOCTYPE html
html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlescript srchttps://unpkg.com/vue3/dist/vue.global.js/script
/headbodydiv idappinput typecheckbox :checkedinfo changechangeinput typeradio :checkedinfo changechange nameh/divscriptVue.createApp({data() {return {info: }},methods: {change(e) {console.log(e.target.checked);this.info e.target.checked}}}).mount(#app)/script
/body/html实现效果
3.3 实现select
!DOCTYPE html
html langenheadmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlescript srchttps://unpkg.com/vue3/dist/vue.global.js/script
/headbodydiv idappselect name id :valueinfo changechangeoption value江西江西/optionoption value湖南湖南/optionoption value北京北京/optionoption value上海上海/option/select/divscriptVue.createApp({data() {return {info: }},methods: {change(e) {console.log(e.target.value);this.info e.target.value}}}).mount(#app)/script
/body/html实现效果