Vue3--vue双向绑定v-module

vue双向绑定v-module

v-model 原理

v-bind绑定value属性的值;

v-on绑定input事件监听到函数中,函数会获取最新的值赋值到绑定的属性中

手动实现双向绑定

<input type="text" :value="message" @input="inputChange" />
...
       data() {
          return {
            message: "Hello Vue",
          };
        },
        methods: {
          inputChange(event) {
            this.message = event.target.value;
          },
        },

v-model 绑定textarea

<textarea cols="30" rows="10" v-model="content"></textarea>

v-model 绑定checkbox

checkbox单选框 绑定到属性中的值是一个Boolean此时input的value属性并不影响v-model的值

	<label for="agree">
        <input id="agree" type="checkbox" v-model="isAgree" /> 同意协议
    </label>
    <h2>单选框:{{isAgree}}</h2>

checkbox多选框 绑定到属性中 值是array 注意 多选框中 必须明确的绑定一个value值

 	<div class="hobbies">
        <h2>请选择你的爱好</h2>
        <label for="sing">
          <input id="sing" type="checkbox" v-model="hobbies" value="sing" /></label>
        <label for="jump">
          <input id="jump" type="checkbox" v-model="hobbies" value="jump" /></label>
        <label for="rap">
          <input id="rap" type="checkbox" v-model="hobbies" value="rap" />rap
        </label>
        <label for="basketball">
          <input
            id="basketball"
            type="checkbox"
            v-model="hobbies"
            value="basketball"
          />篮球
        </label>
        <h2>爱好{{hobbies}}</h2>
      </div>

v-model 绑定radio

绑定同一个值的时候本身就是互斥的 省略name不用写 radio单选框也要绑定value

	<div class="gender">
        <label for="male">
          <input type="radio" id="male" v-model="gender" value="male" /></label>
        <label for="female">
          <input type="radio" id="female" v-model="gender" value="female" />" /></label>
        <h2>性别{{gender}}</h2>
      </div>

v-model 绑定select

和checkbox一样,select也分单选和多选两种情况。
单选:只能选中一个值
v-model绑定的是一个值;
当我们选中option中的一个时,会将它对应的value赋值到fruit中;
多选:可以选中多个值
v-model绑定的是一个数组;
当选中多个值时,就会将选中的option对应的value添加到数组fruit中

	<select v-model="fruit">
        <option value="apple">苹果</option>
        <option value="orange">橘子</option>
        <option value="banana">香蕉</option>
      </select>
      <h2>单选{{fruit}}</h2>
      <hr />
      <select multiple size="3" v-model="fruits">
        <option value="apple">苹果</option>
        <option value="orange">橘子</option>
        <option value="banana">香蕉</option>
      </select>
      <h2>多选{{fruits}}</h2>

v-model .lazy

默认情况下 v-model在进行双向绑定时 绑定的是input事件 那么会在每次内容输入后就将最新的值和绑定的属性进行同步 如果我们在v-model后跟上lazy修饰符 那么会将绑定的事件切换为change事件 只有在提交时(比如回车,失去焦点)才会触发

      <input type="text" v-model.lazy="message" />
      <h2>{{message}}</h2>

v-model .number

number 自动将内容转换为数字

      <input type="text" v-model.number="counter" />
      <h2>counter:{{counter}}-{{typeof counter}}</h2>

v-model .trim

trim去除首位的空格

      <input type="text" v-model.trim="content" />
      <h2>content:{{content}}</h2>

使用多个修饰符

		<input type="text" v-model.trim.lazy="content" />
		<h2>content:{{content}}</h2>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue中,v-model是用于实现双向数据绑定的指令。在Vue 2中,v-model用于将表单输入元素的值与Vue实例中的数据进行双向绑定。这意味着当输入元素的值发生变化时,Vue实例中的数据也会相应地更新,反之亦然。 而在Vue 3中,v-model仍然用于实现双向数据绑定,但是它的用法有所改变。Vue 3中的v-model不再是一个指令,而是一个内置的语法糖,它可以更方便地实现双向绑定。在Vue 3中,你可以使用v-model来绑定表单输入元素的值,并且可以根据需要自定义v-model的行为。 另外,Vue 3引入了一个新的功能——模块化架构。通过使用类似于的架构开发Vue应用,可以将应用程序分解为多个独立的模块,每个模块负责管理自己的状态和逻辑。这种模块化的开发方式可以提高代码的可维护性和复用性。 总结起来,v-model在Vue 2和Vue 3中都用于实现双向数据绑定,但在Vue 3中它的用法更灵活。此外,Vue 3还引入了模块化架构的概念,可以让开发者更好地组织和管理Vue应用的代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue-module-loader:让你用微前端架构搭建Vue应用](https://download.csdn.net/download/weixin_42150745/20696773)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [自定义Vue中的v-module双向绑定的实现](https://download.csdn.net/download/weixin_38623707/12943750)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vue3中使用jweixin-module报错](https://blog.csdn.net/qq_36093530/article/details/123210986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_聪明勇敢有力气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值