• v-model


    1,v-model的基本使用

    1. <input type="text" v-model="msg">
    2. <h2>{{msg}}h2>

     v-model 双向绑定 只要input框的值发生改变,则h2中的ms的值也会同时发生改变

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <script src="./vue.js">script>
    9. head>
    10. <body>
    11. <div id="app">
    12. <input type="text" v-model="msg">
    13. <h2>{{msg}}h2>
    14. div>
    15. <script>
    16. var vm = new Vue({
    17. el:'#app',
    18. data(){
    19. return{
    20. msg:'猜猜我会怎么变化'
    21. }
    22. }
    23. })
    24. script>
    25. body>
    26. html>

    效果图

     2,v-model的底层原理

    首先 来创建有一个小deom, 不用v-model来实现双向绑定

    <input type="text"  @input="changeValue"  :value="msg">

    底层的原理就是:用到了oninput方法,用户在输入的时候触发,同时用到v-bind来绑定的

    1. <div id="app">
    2. <input type="text" @input="changeValue" :value="msg">
    3. <h2>{{msg}}h2>
    4. div>
    5. <script>
    6. var vm = new Vue({
    7. el:'#app',
    8. data(){
    9. return{
    10. msg:'我可是没有用v-model来实现的哦!'
    11. }
    12. },methods:{
    13. changeValue(event){
    14. this.msg=event.target.value
    15. }
    16. }
    17. })
    18. script>

    3,v-model的修饰符的使用 

    1. lazy:默认情况下是实时更新数据加上lazy,从输入框失去焦点按下enter都会更新数据。
    2. number:默认是string类型,使用number复制为number类型。
    3. trim:用于自动过滤用户输入的首尾空白字符
    1. <h2>v-model修饰符h2>
    2. <h3>lazy,默认情况是实时更新数据,加上lazy,从输入框失去焦点,按下enter都会更新数据h3>
    3. <input type="text" v-model.lazy="message">
    4. <div>{{message}}div>
    5. <h3>修饰符number,默认是string类型,使用number赋值为number类型h3>
    6. <input type="number" v-model.number="age">
    7. <div>{{age}}--{{typeof age}}div>
    8. <h3>修饰符trim:去空格h3>
    9. <input type="text" v-model.trim="name">

     js部分

    效果图 

     

     

    4, v-model结合select

     ​ v-model结合select可以单选也可以多选。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
    7. <title>v-model结合select类型title>
    8. head>
    9. <body>
    10. <div id="app">
    11. <select name="fruit" v-model="fruit">
    12. <option value="苹果">苹果option>
    13. <option value="香蕉">香蕉option>
    14. <option value="西瓜">西瓜option>
    15. select>
    16. <h2>你选择的水果是:{{fruit}}h2>
    17. <select name="fruits" v-model="fruits" multiple>
    18. <option value="苹果">苹果option>
    19. <option value="香蕉">香蕉option>
    20. <option value="西瓜">西瓜option>
    21. select>
    22. <h2>你选择的水果是:{{fruits}}h2>
    23. div>
    24. <script src="../js/vue.js">script>
    25. <script>
    26. const app = new Vue({
    27. el:"#app",
    28. data:{
    29. fruit:"苹果",
    30. fruits:[]
    31. },
    32. })
    33. script>
    34. body>

  • 相关阅读:
    HashMap 源码逐行分析,j + oldCap 桶位置重分配公式手写验证
    哈希表相关知识
    咖啡店怎么做才能赚钱?一个公式,简单粗暴简单做到
    java计算机毕业设计线上远程教学及自主学平台的设计与实现源程序+mysql+系统+lw文档+远程调试
    JS中4种常见的内存泄漏
    大型网站系统架构演化实例_6.使用分布式文件系统和分布式数据库系统
    智能座舱力拼「差异化」,各路芯片玩家再次引领新潮流
    这几个好用的去图片水印免费软件,你们知道吗?
    Ubuntu虚拟机部署OpenStack
    十几年Java“老油条”,教你如何才能把Java学好学透彻
  • 原文地址:https://blog.csdn.net/qq_52499703/article/details/126139358