(第三天)Vue插值操作,v-bind语法

1:插值操作

  Moustache语法:{{message}}不仅仅可以定义变量、常量还能进行数值运算、字符串拼接等操作。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>

<body>
<script src="../js/vue.js"></script>
  <div id="app">
    {{message}}
    <h1>{{message}},西巴</h1>
    <!--Mustache语法 不仅仅可以写值、也可以写表达式,也可以写变量    -->
    <h2>{{firstName+lastName}}</h2>
    <h2>{{firstName+ '  ' +lastName}}</h2>
    <h3>{{counter *4}}</h3>
  </div>
<script>
  const app = new Vue ({
    el : '#app',
    data: {
      message: '你好Vue',
      firstName: 'kebe',
      lastName: 'bryant',
      counter : 100
    }
  })
</script>

</body>
</html>

2:v-once指令 :只允许页面第一次渲染对值进行修改,后续不允许修改。

  <div id="app">
    {{message}}
    <h2 v-once>{{message}} </h2> <!--只渲染一次,数据只在加载的时候修改第一次-->
  </div>
  <script src="../js/vue.js"></script>
    <script>
      const app = new Vue ({
        el : '#app',
        data: {
          message: '你好Vue',
        }
      })
  </script>

3:v-html:当后台传来一个字符串“<a href="xxx">xxxx</a>”前台需要直接将这个进行展示

   <div id="app">
       {{message}}
       <p v-html="url"></p>
     </div>
     <script src="../js/vue.js"></script>
       <script>
         const app = new Vue ({
           el : '#app',
           data: {
             message: '你好Vue',
             url : '<a href="www.baidu.com">百度一下</a>'
           }
         })
     </script>

4:v-text指令 :与Moustache语法不同的是:v-text是覆盖原有的内容,进行新增

  <div id="app">
    <p>{{message}}</p>
    <p v-text="message"></p> <!--会覆盖p标签内的所有内容-->
    <p v-pre>{{message}}</p> <!--会把标签内的内容原封不动的显示出来-->
  </div>
    <script src="../js/vue.js"></script>
      <script>
        const app = new Vue ({
          el : '#app',
          data: {
            message: '你好Vue',
          }
        })
    </script>

5:v-cloak:页面进行js卡住没有进行vue解析时会显示{{xxx}}这样难看的标志。

<div id="app" v-cloak>
      {{message}}
    </div>
    <script src="../js/vue.js"></script>
      <script>
        /*
        * 在vue解析之前,div有一个叫v-cloak的属性
        * 在vue解析之后,div没有一个叫v-cloak的属性
        * */
        /*代码从上到下执行,有些时候js代码会卡住,页面首先展示的是{{message}},然后才进行渲染*/
        setTimeout(function () {
          const app = new Vue ({
            el : '#app',
            data: {
              message: '你好Vue',
            }
          })
        },1000)
    </script>

 

 

2:v-bind初体验

Moustache是对元素内的值进行改变渲染,v-bind是对元素属性进行渲染

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<!--
    之前学的是讲内容进行绑定显示,但是有一些情况需要绑定一些元素的属性,比如说 src的url是动态获取的这时候就需要使用v-bind属性
    mustache语法只能在content中进行使用
    错误做法 <img src="{{url}}"></img>  这里不可以使用   效果为<img src="{{url}}"></img>  无法解析
    正确做法:
-->
   <div id="app">
     <img v-bind:src="url" />
     <a v-bind:href="baiduUrl">百度一下</a>
     <!-- vue 给我们提供了简易语法糖写法-->
     <img :src="url"/>
     <a :href="baiduUrl">百度一下</a>
    </div>
     <script src="../js/vue.js"></script>


       <script>
         const app = new Vue ({
           el : '#app',
           data: {
             message: '你好Vue',
             url : 'https://i0.hdslb.com/bfs/vc/8e084d67aa18ed9c42dce043e06e16b79cbb50ef.png',
             baiduUrl : 'http://www.baidu.com'
           }
         })
     </script>
</body>
</html>

2:v-bind动态绑定class   对象语法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    .active{
      color:red;
    }
  </style>
</head>
<body>
  <div id="app">
    <p class="active">{{message}}</p>
    <p :class="active">{{message}}</p>

    <!--<p :class="{类目1 :布尔值,类目2 :布尔值}">v-bindClass测试</p>-->
    <p :class="{active: isActive,line : isLine}">v-bind测试</p>
  </div>
  <div id="app2">
    <!--需求:点击按钮第一下变成红色、再点变成黑色-->
    <p :class="{active:isActive}">{{message}}</p>
    <button v-on:click="changeButton">点击变色</button>
  </div>
    <script src="../js/vue.js"></script>
      <script>
        const app = new Vue ({
          el : '#app',
          data: {
            message: '你好Vue',
            active: 'active',
            isActive: true,
            isLine: true
          }
        })

        const app2 = new Vue({
          el: '#app2',
          data: {
            message: '改变颜色点击按钮',
            active: 'active',
            isActive: true
          },
          methods:{
            changeButton :function(){
              this.isActive=!this.isActive
            }
          }
        })
    </script>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
v-bind指令用于在Vue实现属性的动态绑定。它可以将一个或多个attribute,或者一个组件prop动态绑定到表达式。在Vue,v-bind可以使用简写形式,即使用冒号(:)来代替v-bind指令。例如,可以使用v-bind或者简写形式:来绑定一个img标签的src属性,如下所示: ``` <img v-bind:src="imageSrc"> ``` 或者简写为: ``` <img :src="imageSrc"> ``` 需要注意的是,在属性值内不能直接使用插值操作,例如不能直接写入类似于`<h1 :style="font-size:50px;color:red;">this is test</h1>`的语法。如果想要在元素节点的属性上绑定Vue的data数据,需要使用v-bind指令。例如,可以使用v-bind指令将data的tit数据绑定到h1标签的title属性上: ``` <h1 v-bind:title="tit">this is test</h1> ``` 这样,h1标签的title属性就会与data的tit数据进行绑定,实现了属性的动态更新。 #### 引用[.reference_title] - *1* [【VueVuev-bind的使用](https://blog.csdn.net/weixin_34727238/article/details/106949433)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Vue的v-bind指令基本用法和介绍](https://blog.csdn.net/qq_41196217/article/details/117253289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值