首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >v-bind: 给标签的属性赋值

v-bind: 给标签的属性赋值

作者头像
名字是乱打的
发布于 2021-12-22 15:34:13
发布于 2021-12-22 15:34:13
5.9K0
举报
文章被收录于专栏:软件工程软件工程

ps:全demo级别自学vue.js,前端大佬自行忽略

首先我们传统方式,如用插值表达式{{}}是无法给我们我属性赋值的 如下

代码语言:javascript
复制
<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>v-model</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>

    <body>
        <div id="app">
            <font color="{{color1}}">颜色1</font>
            <hr>
            <font color="{{color2}}">颜色2</font>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                color1:"red ",
                color2:"yellow"
            }
        })
    </script>

</html>
所以我们要想在js中动态给标签里的属性赋值,我们需要用到v-bind:

我们可以在属性前面加v-bind: 代表后面的属性值是从我们的vue对象中取得 demo如下:

代码语言:javascript
复制
<!DOCTYPE html>
<html xmlns:v-bind="http://www.w3.org/1999/xhtml">

    <head>
        <meta charset="utf-8" />
        <title>v-model</title>
        <script src="js/vuejs-2.5.16.js"></script>
    </head>

    <body>
        <div id="app">
            <font v-bind:color="color1">颜色1</font>
            <hr>
            <font v-bind:color="color2">颜色2</font>
        </div>
        <hr />
        <div id="app2"><!-- 检测v-bing的简便用法,直接用:代替V-bind: -->
            <font :color="color3">颜色3</font>
            <hr>
            <font :color="color4">颜色4</font>
        </div>
    </body>
    <script>
        //view model
        new Vue({
            el:"#app",
            data:{
                color1:"red",
                color2:"blue"
            } 
        }) 
        new Vue({
            el:"#app2",
            data:{
                color3:"yellow",
                color4:"red"
            } 
        }) 
    </script>

</html>

效果

另外V-bind支持对属性支持多次赋值以及三目运算符以及.

  • 对象赋值
  • 数组赋值
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
    <div 
    class="test"
    v-bind:class="[ isActive ? 'active' : '', isGreen ? 'green' : '']" 
    style="width:200px; height:200px; text-align:center; line-height:200px;">
        hi vue
    </div>
    
    <div 
    :style="{color:color, fontSize:size, background: isRed ? '#FF0000' : ''}">
        hi vue
    </div>
</div>
<script type="text/javascript">
var vm = new Vue({
    el : "#app",
    data : {
        isActive : true,
        isGreen : true,
        color : "#FFFFFF",
        size : '50px',
        isRed : true
    }
});
</script>
<style>
.test{font-size:30px;}
.green{color:#00FF00;}
.active{background:#FF0000;}
</style>
</body>
</html>

结果如图


1 . 对象语法

关于用法四有的时候我们属性比较复杂不宜直接放在标签内,那么我们可以放在一个方法中,使其返回该值,如下

2 . 数组语法

一般不用这个,因为意义不大,和我们直接用class=""差不多 而我们用对象语法时候比较灵活比如:class="{active:true,line:false}",我们可以通过一些如动态判断以及绑定进行比较灵活的配置.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 所以我们要想在js中动态给标签里的属性赋值,我们需要用到v-bind:
  • 1 . 对象语法
  • 2 . 数组语法
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档