vue中v-model 数据双向绑定

表单输入绑定

  • v-model 数据双向绑定,只能应用在input /textare /select

    <div id="app">
        <input type="text" v-model="msg">
        <p>{{ msg }}</p>
    </div>
    <script src="vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data() {
                return{
                    msg: ' alex '
                }}
        })
    </script>
  • 示例:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>
            span.active{
                color:red;
            }
        </style>
    </head>
    
    <body>
    <div id="app">
        <div>
            <span @click="handlerClick(index)" v-for = "(category,index) in categoryList" :key="category.id" :class="{active:index==currentIndex}">
                                                                                    <!--绑定属性-->
                {{ category.name }}
            </span>
    
        </div>
    
    </div>
    
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script src='./vue.js'></script>
    <script>
        let vm = new Vue({   // 声明变量  实例化一个对象vm(指的是vue的实例)
            el: "#app",    //绑定根元素
            //数据属性
            data(){  //这里有obsever
                //返回的数据跟后端数据库里的有关,如果是动态的数据,存的是数据结构
                return {categoryList:[],currentIndex:0}
            },
            methods:{
                handlerClick(i){this.currentIndex=i;}
            },
            created(){
                $.ajax({
                    //请求后端数据 ****
                    url:"https://www.luffycity.com/api/v1/course_sub/category/list/",
                    type:"get",
                    // success:function(data){
                    //后端数据渲染回来
                    success:(data)=>{       //data 一般是从后端返回给前端的
                        console.log(data);
    
                        //Object
                            //data:(6) [{…}, {…}, {…}, {…}, {…}, {…}, __ob__: Observer]
                            //error_no:0
                            //proto__:Object
    
                        if (data.error_no === 0){
                            var data=data.data;
                            let obj={
                                id:0,
                                name:"全部",
                                category:"0"
                            }
                            this.categoryList = data;
                            this.categoryList.unshift(obj)
                            //把data赋值给categoryList
                            console.log(this)//拿到的是一个ajax对象,
                            // 所以把上面的匿名函数改成箭头函数
    
                            //改成箭头函数之后得到的是vue对象
                            this.categoryList=data;
                        }
                },
    
                    error:function(err){
                        console.log(err);
                    }
                })
            }
        })
    </script>
    
    </body>
    </html>

原文地址:https://www.cnblogs.com/bigox/p/11629997.html

时间: 2024-11-09 13:21:21

vue中v-model 数据双向绑定的相关文章

vue中v-model的数据双向绑定(重要)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <input type="text" v-model="msg"&g

[vue]实现父子组件数据双向绑定

参考: http://www.cnblogs.com/xxcanghai/p/6124699.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <s

vue中数据双向绑定的实现原理

vue中最常见的属v-model这个数据双向绑定了,很好奇它是如何实现的呢?尝试着用原生的JS去实现一下. 首先大致学习了解下Object.defineProperty()这个东东吧! * Object.defineProperty() * 对对象的属性进行 定义/修改 * */ let obj = {x:10} // 这两种方式都相对来说比较简单,直接,但是有些时候我们需要对对象的属性的修改和增加进行必要的干预 // obj.y = 20; // obj.x = 100; // obj.x =

vue中数据双向绑定注意点

最近一个vue和element的项目中遇到了一个问题: 动态生成的对象进行双向绑定是失败 直接贴代码: <el-form :model="addClass" :rules="rules" ref="addClass"> <el-form-item label="表单分类名称" prop="NAME" :label-width="formLabelWidth"> &

vue中如何实现数据的双向绑定

vue中如何实现数据的双向绑定 实现视图变化数据跟着变:分两步,上面get中的为第二步(即再次读取的时候会调用get方法得到之前设置的值,以此来实现动态改变) 由于直接写obj.name = this.value;会导致循环调用set方法,所以要借助中间对象的形式把值赋给中间对象,获取obj.name的时候我们获取中间对象的最新值即可 let obj = {name:'zhufeng',age:9};//数据 let temp = {name:"lily"};//借助中间对象 let

VUE的数据双向绑定

1.概述 让我们先来看一下官网的这张数据绑定的说明图: 原理图告诉我们,a对象下面的b属性定义了getter.setter对属性进行劫持,当属性值改变是就会notify通知watch对象,而watch对象则会notify到view上对应的位置进行更新(这个地方还没讲清下面再讲),然后我们就看到了视图的更新了,反过来当在视图(如input)输入数据时,也会触发订阅者watch,更新最新的数据到data里面(图中的a.b),这样model数据就能实时响应view上的数据变化了,这样一个过程就是数据的

Vue实现数据双向绑定的原理

Vue实现数据双向绑定的原理:Object.defineProperty() vue实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调.当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们转为 getter/setter.用户看不

AngularJS学习--- AngularJS中数据双向绑定(two-way data-binding) orderBy step4

1.切换工作目录 git checkout step-4 #切换分支,切换到第4步 npm start #启动项目 2.代码 app/index.html Search: <input ng-model="query"> Sort by: <select ng-model="orderProp"> <option value="name">Alphabetical</option> <opti

Vue数据双向绑定原理及简单实现

嘿,Goodgirl and GoodBoy,点进来了就看完点个赞再go. Vue这个框架就不简单介绍了,它最大的特性就是数据的双向绑定以及虚拟dom.核心就是用数据来驱动视图层的改变.先看一段代码. 一.示例 var vm = new Vue({ data: { obj: { a: 1 } }, created: function () { console.log(this.obj); } }); 二.实现原理 vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的. 1)数据劫