首页 > 其他分享 > vue3 基础-表单元素双向绑定

vue3 基础-表单元素双向绑定

时间:2022-08-31 00:11:43浏览次数:45  
标签:youge const app 绑定 表单 vue3 input message

通常是在 form 表单相关的场景中会用到双向绑定相关, 核心是 v-model 的应用.

input 输入框

<!DOCTYPE html>
<html lang="en">
<head>
  <title>input</title>
  <script src="https://unpkg.com/vue@3"></script>
</head>
<body>
  <div id="root"></div>
  <script>
    const app = Vue.createApp({
      data () {
        return {
          message: 'hello, youge'
        }
      },
      template: `
      <div>
        {{message}}
        <input v-model="message" />
      </div>
      `
    })
  const vm = app.mount('#root')
  </script>
</body>
</html>

这里双向绑定指的是, message 和 input 框的输入内容和数据是"互相绑定和同步的" 任何一个发生改变, 则另一个同样改变, 核心就是 v-model 的功效. 对于 input 来说, 这里就不用写 value 相关的了.

<div>
   {{message}}
   <input v-model="message" />
</div>

textarea 多行输入框

多行输入标签和 input 是一样的写法. 同原生不同在于, 就一个单标签的方式即可完成编写.

template: `
  <div>
    {{message}}
    <textarea v-model="message" />
  </div>
`

radio 单选框

单选框, 只能选中一个选项, 因此用字符串来存储数据是非常合适的.

<!DOCTYPE html>
<html lang="en">
<head>
  <title>radio</title>
  <script src="https://unpkg.com/vue@3"></script>
</head>
<body>
  <div id="root"></div>
  <script>
    const app = Vue.createApp({
      data () {
        return {
          message: ""
        }
      },
      template: `
      <div>
        {{message}}
        youge <input type="radio" v-model="message" value="youge" />
        youni <input type="radio" v-model="message" value="youni" />
        myson <input type="radio" v-model="message" value="myson" />
      </div>
      `
    })
  const vm = app.mount('#root')
  </script>
</body>
</html>

checkbox 多选框

复选框就稍微复杂一点, 需要 value 来做标记, 同时数据的存储可以通过数组.

<!DOCTYPE html>
<html lang="en">
<head>
  <title>chexbox</title>
  <script src="https://unpkg.com/vue@3"></script>
</head>
<body>
  <div id="root"></div>
  <script>
    const app = Vue.createApp({
      data () {
        return {
          message: []
        }
      },
      template: `
      <div>
        {{message}}
        youge <input type="checkbox" v-model="message" value="youge" />
        youni <input type="checkbox" v-model="message" value="youni" />
        myson <input type="checkbox" v-model="message" value="myson" />
      </div>
      `
    })
  const vm = app.mount('#root')
  </script>
</body>
</html>
// 就勾选了 1, 3 然后数组显示了 1, 3
[ "myson", "youge" ]  youge  youni  myson 

因此 单选框 radio 和 多选框 checkbox 的共性都是需要 value 属性来绑定数据, 差异在于数据的存储上, radio 用字符串存储, checkbox 用数组存储即可.

select 下拉框

下拉框其实也就分单选和多选, 用法和上面的标签是一致的, 先来看单选的情况.


标签:youge,const,app,绑定,表单,vue3,input,message
From: https://www.cnblogs.com/chenjieyouge/p/16641452.html

相关文章

  • 数据绑定
    响应式数据:只能由代码改变UI或者只能由UI改变代码双向数据绑定:代码改变UI,UI也能改变代码双向数据绑定的实现:2种方式1.自己实现,vue可以自己实现(没必要)微信开发......
  • 样式绑定
    切换效果的实现:1、做切换效果的技术(样式绑定)2、组件或者模块的切换(动态组件v-if/v-show)3、路由切换(router)样式绑定(1)对class属性进行绑定 1、v-bind:class指......
  • VUE3.0+Antdv+Asp.net WebApi开发学生信息管理系统(完)
    在B/S系统开发中,前后端分离开发设计已成为一种标准,而VUE作为前端三大主流框架之一,越来越受到大家的青睐,Antdv是Antd在Vue中的实现。本系列文章主要通过Antdv和Asp.netWebA......
  • 父传子 子穿父 vue3
    不错的博客https://blog.csdn.net/qq_43895215/article/details/124626692......
  • Vue3打包部署Nginx
     1、在vue.config.js中配置如下1const{defineConfig}=require('@vue/cli-service')2module.exports=defineConfig({3transpileDependencies:tr......
  • 虚函数 静态绑定 动态绑定
    虚函数详解:https://blog.csdn.net/lyztyycode/article/details/81326699虚函数作用主要是实现了多态机制。多态就是用父类类别的指针指向其子类的实例,然后通过父类的指针......
  • python request post from 提交表单
    前言一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样:请求行请求报头消息主体HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必......
  • vue3+ pinia 的初实用
    固定不变的:stores/index.jsimport{createPinia}from"pinia"constpinia=createPinia()exportdefaultpinia main.jsimport{createApp}from......
  • vue3 Teleport 传送门
    先放个官方文档链接~某位同事研究vue3时,发现vue3的Teleport使用起来有点问题。<template><divclass="test">1<divclass="qwe">2</div><teleportto=".q......
  • vue2和vue3的modules :
    store/modules/home.jsexportdefault{state:{//服务器数据banners:[],recommends:[]},mutations:{changeBanners(state,banners......