Vue3 - 表单的输入与绑定

Vue - 表单的输入与绑定

输入框输入文本,对应以前都是操作DOM树结构进行的绑定。现在学习了VUE不建议大家通过DOM树进行绑定获取数据。

需求一

输入框输入文本,对应页面联动显示:

<script>
export default{
  name: 'app',
  data(){
    return{
      username:""
    }
  }
}
</script>
<template>
  <main>
    <div>
      <h1>表单的输入与绑定</h1>
      <p>{{username}}</p>
      <input type="text" v-model="username">
    </div>
  </main>
</template>

在这里插入图片描述

需求二

输入框输入文本,点击按钮,对应控制台打印输入的文本内容:

<script>
export default{
  name: 'app',
  data(){
    return{
      username:""
    }
  },
  methods:{
   clickInputHandle(){
      console.log(this.username)
    }
  }

}
</script>
<template>
  <main>
    <div>
      <h1>表单的输入与绑定</h1>
      <p>{{username}}</p>
      <input type="text" v-model="username">
      <button @click="clickInputHandle">表单按钮</button>
    </div>
  </main>
</template>

在这里插入图片描述

点击后的效果如下图:

在这里插入图片描述

总结

不只是input标签的输入框,常见的输入框都可以。单选框、多选框select标签都可以。

修饰符

需求三 - .lazy

  • 在每次 change 事件后更新数据
    在失去输入框焦点时获取输入文本框的信息:
<script>
export default{
  name: 'app',
  data(){
    return{
      username:""
    }
  },
  methods:{
   clickInputHandle(){
      console.log(this.username)
    }
  }
}
</script>
<template>
  <main>
    <div>
      <h1>表单的输入与绑定</h1>
      <p>{{username}}</p>
      <input type="text" v-model.lazy="username">
      <button @click="clickInputHandle">表单按钮</button>
    </div>
  </main>
</template>

在这里插入图片描述

.number

用户输入自动转换为数字

.trim

默认自动去除用户输入内容中两端的空格

Vue - 计算属性

模板中的表达式虽然方便,但也只能用来做简单的操作。如果在模板中写太多逻辑,会让模板变得臃肿,难以维护。推荐使用计算属性来描述依赖响应式状态的复杂逻辑:

需求一

输入框输入文本,在页面对应文本倒序操作:

<script>
export default{
  name: 'app',
  data(){
  },
  computed:{
    getMessageA(){
      return this.messageA.split('').reverse().join('')
    }
  }
}
</script>
<template>
  <main>
    <div>
      <h1>计算属性</h1>
      <p>{{messageA.split('').reverse().join('')}}</p>
      <input type="text" v-model="messageA">
      <p>{{ getMessageA }}</p>
  </main>
</template>

在这里插入图片描述

  • computed:编写对应的方法,不用加括号
  • methods:编写对应的方法与computed效果一致,调用时要加括号

Vue - 侦听器

使用 watch 选项在每次响应式属性发生变化时触发一个函数。

<script>
export default{
  name: 'app',
  data(){
    return{
      listenT:""
    }
  },
  watch:{
    listenT(newValue,oldValue){
      console.log(newValue,oldValue);
    }
  }
}
</script>

<template>
  <main>
    <div>
      <h1>侦听器</h1>
      <p>{{question}}</p>
      <div>
        <input type="text" v-model="listenT">
      </div>
    </div>
  </main>
</template>

  • 监听每一次操作的值的变化

Class 与 Style 绑定

:class (v-bind:class 的缩写) 传递一个对象来动态切换 class

<script>
export default{
  name: 'app',
  data(){
    return{
      isActive: true
    }
  }
}
</script>
<template>
<main>
    <div>
      <h1>类与样式绑定</h1>
      <div :class="{active: isActive}">样式</div>
    </div>
  </main>
</template>

在这里插入图片描述

更多技术文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Vue3中,可以使用v-model指令来绑定表单元素,例如input、textarea和select等。在表单元素上使用v-model指令,可以将表单元素的Vue实例中的数据进行双向绑定。 例如,我们可以在Vue组件中使用以下代码来绑定一个input元素: ``` <template> <div> <form> <label for="name">姓名:</label> <input type="text" id="name" v-model="name"> </form> </div> </template> <script> export default { data() { return { name: '' } } } </script> ``` 在上面的代码中,我们使用v-model指令将input元素的Vue实例中的name属性进行双向绑定。当用户在input元素中输入内容时,Vue实例中的name属性也会随之更新。反之,当Vue实例中的name属性发生变化时,input元素的也会随之更新。 需要注意的是,在Vue3中,v-model指令的默认行为已经发生了变化。在Vue2中,v-model指令默认会将表单元素的value属性与Vue实例中的数据进行双向绑定。但在Vue3中,v-model指令默认会将表单元素的modelValue属性与Vue实例中的数据进行双向绑定。因此,在使用v-model指令时,需要根据表单元素的类型和属性进行相应的配置。例如,对于checkbox和radio等表单元素,需要使用:checked和:value等属性来进行绑定。 ### 回答2: 在Vue 3中,v-model绑定form表单变得更加灵活和易用。使用v-model,可以实现双向绑定,也就是说,当用户在表单输入内容时,表单会自动更新到Vue实例中的数据,反之亦然。以下是在Vue 3中绑定form表单的步骤: 1. 在data选项中定义表单中的数据属性。例如,您可以定义一个名为“formData”的对象,其中包含表单中所有输入字段的。 2. 使用v-model指令将数据属性绑定表单输入组件上。例如,您可以在文本框中使用“v-model = 'formData.username'”将formData对象中的“username”属性与文本框绑定。 3. 当用户在表单输入内容时,v-model指令会自动更新formData对象中相应的属性。 4. 如果您还需要在表单提交时执行自定义操作,可以使用@submit事件监听表单提交事件,并在事件处理程序中执行所需的操作。 以下是一个简单的注册表单的示例代码: ``` <template> <form v-on:submit.prevent="onSubmit"> <div> <label for="username">用户名:</label> <input type="text" id="username" v-model="formData.username" /> </div> <div> <label for="password">密码:</label> <input type="password" id="password" v-model="formData.password" /> </div> <button type="submit">注册</button> </form> </template> <script> export default { data() { return { formData: { username: '', password: '', }, }; }, methods: { onSubmit() { // 执行表单提交操作 console.log(this.formData); }, }, }; </script> ``` 在上面的示例中,formData对象用于存储输入字段的,v-model指令将formData对象中的属性与输入字段绑定在一起,@submit事件监听表单提交事件,并在事件处理程序中输出formData对象的。 ### 回答3: Vue3中v-model绑定form表单,与Vue2有所不同,Vue3使用了Composition API。处理表单数据的方式也更加智能化,灵活性更高。下面是具体解析: 1. V-model的使用方式 在Vue3中,我们可以使用v-model实现数据的双向绑定。与Vue2相比,Vue3的v-model使用方式有所改变,我们不再传递一个value和update事件,而是使用一个ModelValue对象。同时,在定义组件时,需使用.emits属性指定自定义组件可触发的事件列表。在composition API中也提供了一个useModel函数,可以方便地定义双向绑定数据。 2. Form表单数据的处理 在Vue2中,我们一般使用v-model绑定form表单,通过@submit事件提交form表单数据。在Vue3中,我们可以使用v-model绑定表单元素,然后通过watch监听表单元素的变化。当表单元素发生变化时,watch函数可以自动更新数据。在提交表单时,我们可以直接使用ref获取表单数据,然后通过AJAX请求来提交数据。 3. 使用响应式对象管理表单数据 在Vue3中,我们可以使用reactive对象来管理表单数据,使表单数据变为响应式的。这样,在表单元素发生变化时,实时更新表单数据。同时,我们还可以使用toRefs函数将响应式对象转化为可响应的对象,使得更新表单数据时,可以自动更新视图。 4. 借助第三方组件库优化表单的处理 Vue3的组合式API让我们可以方便地封装逻辑,将表单数据的处理功能封装为一个能够重复使用的组件。借助第三方组件库,如ElementUI或Ant Design Vue等,我们可以在项目中快速地搭建出完备、效果优美的表单组件,进一步提高开发效率。 总之,Vue3中v-model绑定form表单,可以处理表单数据的方式更加智能化,操作灵活性更高。结合响应式对象等特性,我们可以更快地搭建出效率高、可复用的表单组件,减少开发成本和工作量,提高生产力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值