- <input type="text" v-model="msg">
- <h2>{{msg}}h2>
v-model 双向绑定 只要input框的值发生改变,则h2中的ms的值也会同时发生改变
- html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- <script src="./vue.js">script>
- head>
-
- <body>
- <div id="app">
-
- <input type="text" v-model="msg">
- <h2>{{msg}}h2>
- div>
- <script>
- var vm = new Vue({
- el:'#app',
- data(){
- return{
- msg:'猜猜我会怎么变化'
- }
- }
- })
- script>
- body>
-
- html>
效果图

首先 来创建有一个小deom, 不用v-model来实现双向绑定
<input type="text" @input="changeValue" :value="msg">
底层的原理就是:用到了oninput方法,用户在输入的时候触发,同时用到v-bind来绑定的
- <div id="app">
-
-
- <input type="text" @input="changeValue" :value="msg">
-
- <h2>{{msg}}h2>
-
- div>
- <script>
- var vm = new Vue({
- el:'#app',
- data(){
- return{
- msg:'我可是没有用v-model来实现的哦!'
- }
- },methods:{
- changeValue(event){
- this.msg=event.target.value
- }
- }
- })
- script>
lazy:默认情况下是实时更新数据加上lazy,从输入框失去焦点按下enter都会更新数据。number:默认是string类型,使用number复制为number类型。trim:用于自动过滤用户输入的首尾空白字符- <h2>v-model修饰符h2>
- <h3>lazy,默认情况是实时更新数据,加上lazy,从输入框失去焦点,按下enter都会更新数据h3>
- <input type="text" v-model.lazy="message">
- <div>{{message}}div>
- <h3>修饰符number,默认是string类型,使用number赋值为number类型h3>
- <input type="number" v-model.number="age">
- <div>{{age}}--{{typeof age}}div>
- <h3>修饰符trim:去空格h3>
- <input type="text" v-model.trim="name">
js部分
-
- const app = new Vue({
- el:"#app",
- data:{
- message:"zzz",
- age:18,
- name:"ttt"
- },
-
- })
-
效果图
v-model结合select可以单选也可以多选。
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>v-model结合select类型title>
- head>
- <body>
- <div id="app">
-
- <select name="fruit" v-model="fruit">
- <option value="苹果">苹果option>
- <option value="香蕉">香蕉option>
- <option value="西瓜">西瓜option>
- select>
- <h2>你选择的水果是:{{fruit}}h2>
-
-
- <select name="fruits" v-model="fruits" multiple>
- <option value="苹果">苹果option>
- <option value="香蕉">香蕉option>
- <option value="西瓜">西瓜option>
- select>
- <h2>你选择的水果是:{{fruits}}h2>
- div>
- <script src="../js/vue.js">script>
- <script>
- const app = new Vue({
- el:"#app",
- data:{
- fruit:"苹果",
- fruits:[]
- },
-
- })
- script>
- body>