美文网首页
Vue之双向绑定

Vue之双向绑定

作者: 知轩的随写 | 来源:发表于2019-01-27 23:58 被阅读0次

Vue.js. 是一个渐进式 JavaScript 框架。

我们谈论Vue,首先会说起用它的一个理由:双向绑定。

双向绑定是UI技术中经常会有需求用到的,比如多级联动菜单,实时检验表单等等。

vue的双向绑定怎么使用呢,看如下实例。


<div id="app">

  <div>

    用户名:<input v-model="username">

  </div>

  <div>密码:<input type="password" v-model="password"></div>

  <div><button v-on:click="login">

登陆

</button></div>

  <div>

    {{loginUser}}

  </div>

  <div v-if="loginSuccess">

    登陆成功

  </div>

</div>

<script>

new Vue({

  el: '#app',

  data: {

    username: '',

    password: '',

    loginSuccess: false

  },

  computed: {

    loginUser: function() {

      return "username:" + this.username + ", password:" + this.password;

    }

  },

  methods: {

    login: function() {

      if (this.username == 'mayun' && this.password == '123456') {

        this.loginSuccess = true;

      }

    }

  }

})

</script>

这个例子中用到了几个Vue的指令:v-model, v-on:click。
其中v-model就是我们常用的双向绑定指令。
那它简单的实现原理是怎样的呢?
可以用两个指令来代替:

<input v-bind:value="username" v-on:input="onInput">

methods:{
    onInput:function(event){
        this.username = event.target.value;
    }
}

所以,简单来说,v-model实现的双向绑定就是将变量username的值绑定到input的value属性,input输入框的input事件触发时,将输入框的value值赋给username属性。

变量 -> dom -> input事件 -> 变量 -> dom

vue框架做的就是监听变量的改变,然后将改变告知监听该变量的对象。
username变量(Observable 可观察对象)
input输入框(Observer 观察者)

相关文章

网友评论

      本文标题:Vue之双向绑定

      本文链接:https://www.haomeiwen.com/subject/hjrojqtx.html