02-Vue的插值操作


Mustache语法

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      {{message}},测试成功
      <h3>{{firstName + lastName}}</h3>
      <h3>{{firstName + ' ' + lastName}}</h3>
      <h3>{{firstName}} {{lastName}}</h3>
      <h3>{{counter * 2}}</h3>
    </div>

    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          message: "测试Mustache语法!",
          firstName: "kobe",
          lastName: "bryant",
          counter: 100
        }
      })
    </script>
  </body>
</html>
1.Mustache语法是什么

{{}}就是 Mustache 的标示符,花括号里的 data 表示键名,这句的作用是直接输出与键名匹配的键值。

2.注意点
  • Mustache不仅仅可以直接写变量,也可以写简单的表达式
  • Mustache后面可以直接拼接字符串

v-once的使用

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      <h2>{{message}}</h2>
      <h3 v-once>{{message}}</h3>
    </div>

    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          message: "你好"
        }
      })
      app.message = "你今天真好看"
    </script>
  </body>
</html>
1.v-once是什么

v-onse修饰的变量在初次定义之后无法被修改,上方代码运行可以发现message的内容改变,h2中的内容随之改变,但是h3的内容并没有随之改变。


v-html的使用

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>

<body>
  <div id="app">
    <h2>{{url}}</h2>
    <!-- v-html可以自动解析html语言,然后渲染到 -->
    <div v-html="url"></div>
  </div>

  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        message: '你好',
        url: '<a href="http://www.baibu.com">百度一下</a>'
      }
    });
  </script>
</body>
</html>
1.v-html是什么

例:当你的朋友给你发一段代码,比如是一个a标签,你想放在这个页面中,所以你新建一个变量在此处赋值,但是vue会将它看成一个字符串,浏览器会显示
<a href=“http://www.baibu.com”>百度一下</a>
要想让vue自动帮你解析这一段代码,加上v-html之后,vue会帮你把它自动渲染到浏览器上,变成这个样子 百度一下


v-text的使用

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      <h2>{{message}},张三</h2>
      <div v-text="message">,张三</div>
    </div>

    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          message: "你好"
        }
      })
    </script>
  </body>
</html>
1.v-text是什么

将变量中的内容原封不动的渲染到浏览器上,其中包括html标签,但是如果该标签中还有别的内容,结果是覆盖而不是拼接,比如

<span v-text=“message”>张三</span> 

则结果为变量message的内容,而不会出现张三。


v-pre的使用

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>

  <body>
    <div id="app">
      <h2>{{message}}</h2>
      <h2 v-pre>{{message}}</h2>
    </div>

    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          message: "你好"
        }
      })
    </script>
  </body>
</html>
1. v-pre是什么

如果你就想在网页上显示{{message}}这一串内容,即默认不解析Mustache语法,则使用v-pre。


v-cloak的使用

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style>
      [v-cloak] {
        display: none;
      }
    </style>
  </head>

  <body>
    <div id="app" v-cloak>
      {{message}}
    </div>

    <script src="../js/vue.js"></script>
    <script>
      setTimeout(() => {
        const app = new Vue({
          el: "#app",
          data: {
            message: "你好"
          }
        })
      }, 1000)
    </script>
  </body>
</html>
1.个人理解v-cloak是什么

浏览器渲染vue组件是需要时间的,如果网速过慢或者加载时间过长,浏览器上一开始看到的将会是{{message}}而不是“你好”,这时的用户体验就很不好。

不加v-cloak效果如下

在这里插入图片描述
可以理解为在Vue解析之前,标签有一个属性叫v-cloak,而当Vue解析之后,v-cloak就会自动取消,于是用css选择器将该元素设置成display:none;即可。

加上v-cloak效果如下

在这里插入图片描述在小项目中,v-cloak 指令可以很好地帮助我们解决屏幕闪动的问题。但在大型、工程化的项目中(webpack、vue-router)只有一个空的 div 元素,元素中的内容是通过路由挂载来实现的,这时我们就不需要用到 v-cloak 指令了。


第一次记录自己的学习笔记,如果您发现问题,欢迎指点。

发布了11 篇原创文章 · 获赞 0 · 访问量 62

猜你喜欢

转载自blog.csdn.net/qq_42647711/article/details/104383262