zoukankan      html  css  js  c++  java
  • vue vmodel的总结

    vue的双向数据绑定v-model

    vue的双向数据绑定原理是什么?

    一般都会搜索到,是用Object.defineProperty( ),来监听数据get和set,来实现数据劫持的

    假如对Object.defineProperty( )不是很了解,可以点击上面链接,看看其语法!

    举个简单的例子:

    var blog = {
      name: '之鹿喵博客'
    };
    console.log(blog.name);  //之鹿喵博客

    如果想要在执行console.log(blog.name)的同时,直接给之鹿喵博客加个书名号,那要怎么处理呢?或者说要通过什么监听对象 blog的属性值。这时候Object.defineProperty( )就派上用场了,代码如下:

    var blog= {}
    var name = '';
    Object.defineProperty(blog, 'name', {
      set: function (value) {
        name = value;
        console.log('欢迎来到' + value);
      },
      get: function () {
        return '《' + name + '》'
      }
    })
    
    blog.name = '之鹿喵博客';  // 欢迎来到之鹿喵博客
    console.log(blog.name);  // 《之鹿喵博客》

    上面代码执行一下,可以查看效果!

    关于 vue的双向数据绑定,具体如何实现的?网上也有很多实现的代码,这里就不多累赘了!

    v-model 的使用

    上面开了一个小差,讲了那么多,其实就是为了说明Vue 是单项数据流,v-model 只是语法糖而已。

    <input v-model="haorooms" />
    <input v-bind:value="haorooms" v-on:input="haorooms= $event.target.value" />

    第一行的代码其实只是第二行的语法糖。然后第二行代码还能简写成这样:

    <input :value="haorooms"  @input="haorooms= $event.target.value" />

    也就是说,

    <input v-model="haorooms" />

    也可以写成

    <input :value="haorooms"  @input="haorooms= $event.target.value" />
  • 相关阅读:
    Django复习
    AI-CBV写法
    CHENGDU3-Restful API 接口规范、django-rest-framework框架
    人工智能玩具制作
    POJ 3176 Cow Bowling
    HDU 2044 一只小蜜蜂
    HDU 4662 MU Puzzle
    POJ 3262 Protecting the Flowers
    POJ 1862 Stripies
    POJ 1017 Packets
  • 原文地址:https://www.cnblogs.com/zhilu/p/13795694.html
Copyright © 2011-2022 走看看