hualinux 进阶 vue 1.6:vue命令(二)属性绑定v-bind 双向数据绑定v-model

目录

一、属性绑定v-bind(单向)

1.1 用法

1.2 例子

1.2.1 没使用v-bind前的例子

1.2.2 使用v-bind绑定

二、双向绑定v-model

2.1  v-model用法

2.2 例子


继续vue命令属性绑定v-bind和双向数据绑定

一、属性绑定v-bind(单向)

1.1 用法

 单向绑定:数据决定页面的显示,但页面无法决定数据里面的内容。

PS:当我们要把vue中的数据的值,赋值给html其中一个属性怎办?比如<p>标签的 text 属性。

vue为了能让html中的属性进行交互,所以创建了vue属性绑定命令,v-bind:<html属性>=<vue中数据的值> 这样就实现了vue与html的交互了。

单向属性绑定可以使用v-bind

  • 缩写:
  • 预期any (with argument) | Object (without argument)
  • 参数attrOrProp (optional)
  • 修饰符
    • .prop - 作为一个 DOM property 绑定而不是作为 attribute 绑定。(差别在哪里?)
    • .camel - (2.1.0+) kebab-case attribute 名转换为 camelCase( 2.1.0 开始支持)
    • .sync (2.3.0+) 语法糖,会扩展成一个更新父组件绑定值的 v-on 侦听器。
  • 用法

动态地绑定一个或多个 attribute,或一个组件 prop 到表达式。

在绑定 class  style attribute 时,支持其它类型的值,如数组或对象。可以通过下面的教程链接查看详情。

在绑定 prop 时,prop 必须在子组件中声明。可以用修饰符指定不同的绑定类型。

没有参数时,可以绑定到一个包含键值对的对象。注意此时 class  style 绑定不支持数组和对象。

1.2 例子

1.2.1 没使用v-bind前的例子

<body>
    <div id="root">
        <p title="this is my first vue"> hello {{msg}} </p>
    </div>

    <script>
        new Vue({
            el: "#root",
            data: {
                msg: "vue"
            }
        })
    </script>
</body>

运行效果:鼠标放在hello vue上会显示 “this is my first vue”

1.2.2 使用v-bind绑定

上面例子修改为

<body>
    <div id="root">
          <!--        mytitle为js表达是,是Vue data中的mytitle-->
        <p v-bind:title="mytitle"> hello {{msg}} </p>
    </div>

    <script>
        new Vue({
            el: "#root",
            data: {
                msg: "vue",
                mytitle: 'this is my first vue'
            }
        })
    </script>
</body>

其中

    <!--        mytitle为js表达是,是Vue data中的mytitle-->
    <p v-bind:title="mytitle"> hello {{msg}} </p>

mytitle为js表达是,是Vue data中的mytitle,所以可以加一些字符,或者多个变量

如:

<div id="root">
      <!--        mytitle为js表达是,是Vue data中的mytitle-->
    <p v-bind:title="'^_^ '+mytitle"> hello {{msg}} </p>
</div>

效果为:

也可以加其它变量,如加多一个msg

<div id="root">
      <!--        mytitle为js表达是,是Vue data中的mytitle-->
    <p v-bind:title="msg+' ^_^ '+mytitle"> hello {{msg}} </p>
</div>

效果:最前面多了一个vue

二、双向绑定v-model

2.1  v-model用法

当我们有这么一种需求,我要在html中修改vue中的数据,怎办,那么就可以用到v-model命令了。

input标签内容,可以显示内容也可以改变内容。

双向属性绑定可以使用Vue中的v-model

  • 预期:随表单控件类型不同而不同。
  • 限制
    • <input>
    • <select>
    • <textarea>
    • components
  • 修饰符
    • .lazy - 取代 input 监听 change 事件
    • .number - 输入字符串转为有效的数字
    • .trim - 输入首尾空格过滤
  • 用法

在表单控件或者组件上创建双向绑定。细节请看下面的教程链接。

2.2 例子

我在上面例子的基础上添加一个input标签

body>
    <div id="root">
          <!--        mytitle为js表达是,是Vue data中的mytitle-->
        <p v-bind:title="msg+' ^_^ '+mytitle"> hello {{msg}} </p>
        <input  type="text" v-model="msg">
    </div>

    <script>
        new Vue({
            el: "#root",
            data: {
                msg: "vue",
                mytitle: 'this is my first vue'
            }
        })
    </script>
</body>

运行后如下图所示:

修改上面输入框的内容,发现上面的也变化了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值