Vue模版语法之属性绑定v-bind

双大括号不能在 HTML 属性中使用。想要响应式地绑定一个属性,应该使用 v-bind 指令
1. 使用v-bind绑定属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新建页面</title>
    <script type="text/javascript" src="./vue.global.js"></script>
</head>
<body>
    <div id="root">
        <!--使用v-bind进行属性绑定-->
        <div v-bind:id="name"></div>
        <!--使用v-bind进行属性绑定(简写形式)-->
        <div :id="name"></div>
        <!--使用v-bind进行属性绑定(定义属性名称和html中属性名称相同的简写形式)-->
        <div :name></div>
    </div>
</body>
</html>
<script type="text/javascript">
    const { createApp, reactive } = Vue
    createApp({
        data(){
            return{
                name:'id'
            }
        }
    }).mount('#root')
</script>

在这里插入图片描述
2. 布尔型绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一个简单的按钮是否可以点击案例</title>
    <script type="text/javascript" src="./vue.global.js"></script>
</head>
<body>
    <div id="root">
        <!--使用v-bind进行属性绑定,true/false/''时属性生效情况-->
        <!--true时属性生效-->
        <button :disabled="isTrue">Button</button>
        <!--''时属性生效-->
        <button :disabled="isNull">Button</button>
        <!--false时属性不生效-->
        <button :disabled="isFalse">Button</button>
    </div>
</body>
</html>
<script type="text/javascript">
    const { createApp } = Vue
    createApp({
        data(){
            return{
                isTrue:true,
                isNull:'',
                isFalse:false
            }
        }
    }).mount('#root')
</script>

在这里插入图片描述
3. 动态绑定多值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一个简单的按钮是否可以点击案例</title>
    <script type="text/javascript" src="./vue.global.js"></script>
</head>
<body>
    <div id="root">
        <!--使用v-bind进行动态多属性绑定,同时绑定id和name属性-->
        <div v-bind="objectOfAttrs">Button</div>
    </div>
</body>
</html>
<script type="text/javascript">
    const { createApp } = Vue
    createApp({
        data() {
            return {
                objectOfAttrs: {
                    id: 'ids',
                    name: 'names'
                }
            }
        }
    }).mount('#root')
</script>

在这里插入图片描述
4. 使用Javascript绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一个简单的按钮是否可以点击案例</title>
    <script type="text/javascript" src="./vue.global.js"></script>
</head>
<body>
    <div id="root">
        <!--使用v-bind进行属性绑定,属性值部分使用javascrip值-->
        <div :id="`list-${id}`">Button</div>
    </div>
</body>
</html>
<script type="text/javascript">
    const { createApp } = Vue
    createApp({
        data() {
            return {
                id: 'ids'
            }
        }
    }).mount('#root')
</script>

在这里插入图片描述
5. 动态设置v-bind的属性值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一个简单的按钮是否可以点击案例</title>
    <script type="text/javascript" src="./vue.global.js"></script>
</head>
<body>
    <div id="root">
        <!--使用v-bind进行属性绑定,动态指定属性名称-->
        <div :[attributename]="id">Button</div>
    </div>
</body>
</html>
<script type="text/javascript">
    const { createApp } = Vue
    createApp({
        data() {
            return {
                id: 'ids',
                attributename:'name'
            }
        },
    }).mount('#root')
</script>

在这里插入图片描述

  1. 调用函数绑定(暂未研究)
<time :title="toTitleDate(date)" :datetime="date">
  {{ formatDate(date) }}
</time>

绑定在表达式中的方法在组件每次更新时都会被重新调用,因此不应该产生任何副作用,比如改变数据或触发异步操作。

模板中的表达式将被沙盒化,仅能够访问到有限的全局对象列表。该列表中会暴露常用的内置全局对象,比如 Math 和 Date。

没有显式包含在列表中的全局对象将不能在模板内表达式中访问,例如用户附加在 window 上的属性。然而,你也可以自行在 app.config.globalProperties 上显式地添加它们,供所有的 Vue 表达式使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值