04-05:卡其漫画-ES6中模板字符串的使用

745 阅读5分钟

前言

       hello,大家好,接下来我们学习一个ES6中非常重要的知识点,模板字符串,可以让我们的拼接数据更加高效,灵活。

内容概要

       本章节主要内容是来学习一下ES6中模板字符串(``)的使用,语法格式,以及优点。


        当我们向后台服务器发送了异步ajax请求,将数据获取到之后,需要将数据动态的渲染到

页面上。此时页面中的标签结构几乎是一样的,我们需要做的就是需要将获取到的这些数据通

过循环的方式渲染到页面标签当中去。

       当前我们还是以一个小demo的形式来具体而详细的介绍一下模板字符串的使用。在编辑器中新建一个html页面,并写代

码如下:

 <!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>模板字符串的使用</title>
</head>
<body>
  <input type="button" value="单击按钮获取数据">
  <p></p>
  <table border="1" width="600">
    <thead>
      <th>id号</th>
      <th>姓名</th>
      <th>性别</th>
      <th>年龄</th>
      <th>专业</th>
    </thead>
    <tbody align="center">
      <tr>
        <td>1</td>
        <td>小张</td>
        <td>男</td>
        <td>20</td>
        <td>搬砖</td>
      </tr>
      <tr>
        <td>2</td>
        <td>小刘</td>
        <td>男</td>
        <td>22</td>
        <td>砌墙</td>
      </tr>
      <tr>
        <td>3</td>
        <td>小马</td>
        <td>男</td>
        <td>21</td>
        <td>抹灰</td>
      </tr>
    </tbody>
  </table>
</body>
</html>

到浏览器中的具体效果呈现是:


上图是一张数据表格,但当前里面的数据内容是写静态的,没有变化的,在我们正常开发当中应该是向服务端发送请求

获取数据,再将数据渲染到页面上,接下来我们就通过给按钮注册单击事件,通过事件的触发,来向服务器端发送ajax请求,

然后将数据使用模板字符串渲染到页面上,具体实现过程分如下几步:

第1步:先引入jQuery这个js库

 <script src="./js/jquery.js"></script>

第2步:获取页面中的按钮,并给按钮注册事件

 <script>
    // 1. 获取页面中的按钮
    var btn = document.querySelector('input')

    // 2. 给按钮注册单击事件
    btn.onclick = function () {
      
    }
  </script>

第3步:当触发按钮的时候,要发送ajax请求,来获取数据

 <script>
    // 1. 获取页面中的按钮
    var btn = document.querySelector('input')

    // 2. 给按钮注册单击事件
    btn.onclick = function () {
      
      // 3. 调用jQuery中的ajax方法发送请求
      $.ajax({
        type: 'get',  //  设置发送请求的方式
        url: 'https://www.easy-mock.com/mock/5d62446e09c1067760274c0b/example/getStuInfo',// 设置请求的路径
        success: function (data) {
          console.log(data); // 测试一下有没有获取到数据
        }
      })
    }
  </script>

第4步:当获取到数据之后,将数据以循环的方式渲染到页面上,先用原来的方式来拼接数据渲染页面

// 2. 给按钮注册单击事件
    btn.onclick = function (res) {
      
      // 3. 调用jQuery中的ajax方法发送请求
      $.ajax({
        type: 'get',  //  设置发送请求的方式
        url: 'https://www.easy-mock.com/mock/5d62446e09c1067760274c0b/example/getStuInfo',// 设置请求的路径
        success: function (res) {
          console.log(res);
          
          // 4. 循环遍历数组 并在标签上面拼接数据
          var arr = []
          for(var i=0;i<res.data.length;i++){
            var data = res.data[i]
            var str = '<tr>'
                +'<td>'+data.id+'</td>'
                +'<td>'+data.name+'</td>'
                +'<td>'+data.gender+'</td>'
                +'<td>'+data.age+'</td>'
                +'<td>'+data.zhuanye+'</td>'
                    +'</tr >';
            arr.push(str)
          }
          console.log(arr);
          // 5. 将生成的数据渲染到页面上
          $('tbody').html(arr.join(''))
        }
      })
    }

       效果呢,是实现了,但是有个问题需要注意的就是使用+进行字符串的拼接,无法进行业

务逻辑的判断,比如说,如果是男生,则在性别是男的话显示"靓仔",如果是性别是"女"的话,

则显示"靓女",再一个问题是,使用+进行拼接字符串,需要写好多个+,很容易出错,鉴于此

等问题呢,我们还有另外一种更好的解决方案,那就是使用ES6中的模板字符串``,下面来

看使用模板字符串的书写方式:

 <script>
    // 1. 获取页面中的按钮
    var btn = document.querySelector('input')

    // 2. 给按钮注册单击事件
    btn.onclick = function (res) {
      
      // 3. 调用jQuery中的ajax方法发送请求
      $.ajax({
        type: 'get',  //  设置发送请求的方式
        url: 'https://www.easy-mock.com/mock/5d62446e09c1067760274c0b/example/getStuInfo',// 设置请求的路径
        success: function (res) {
          console.log(res);
          
          // 4. 循环遍历数组 并在标签上面拼接数据
          var arr = []
          for(var i=0;i<res.data.length;i++){
            var data = res.data[i]
            var str = `<tr>
                  <td>${data.id}</td>
                  <td>${data.name}</td>
                  <td>${data.gender}</td>
                  <td>${data.age}</td>
                  <td>${data.zhuanye}</td>
                </tr>`;
            arr.push(str)
          }
          console.log(arr);
          // 5. 将生成的数据渲染到页面上
          $('tbody').html(arr.join(''))
        }
      })
    }
  </script>

很明显,我们看到了之前的+没有了,把标签字符串直接放在``这个符号里面即可,在标签之间把要渲染的数据放在

${}当中,让书写更加的方便,直观,如果要是有逻辑判断的话,也是直接在${}中书写即可,比如我们加一个逻辑判断,如果

性别是"男"则要在页面显示一个"靓仔",如果性别是"女"则在页面显示一个"靓女",修改如下:

<script>
    // 1. 获取页面中的按钮
    var btn = document.querySelector('input')

    // 2. 给按钮注册单击事件
    btn.onclick = function (res) {
      
      // 3. 调用jQuery中的ajax方法发送请求
      $.ajax({
        type: 'get',  //  设置发送请求的方式
        url: 'https://www.easy-mock.com/mock/5d62446e09c1067760274c0b/example/getStuInfo',// 设置请求的路径
        success: function (res) {
          console.log(res);
          
          // 4. 循环遍历数组 并在标签上面拼接数据
          var arr = []
          for(var i=0;i<res.data.length;i++){
            var data = res.data[i]
            var str = `<tr>
                  <td>${data.id}</td>
                  <td>${data.name}</td>
                  <td>${data.gender=="男"?"靓仔":"靓女"}</td>
                  <td>${data.age}</td>
                  <td>${data.zhuanye}</td>
                </tr>`;
            arr.push(str)
          }
          console.log(arr);
          // 5. 将生成的数据渲染到页面上
          $('tbody').html(arr.join(''))
        }
      })
    }
  </script>

查看的页面效果如下,可以看到,原来在页面中显示的"男"或"女"更换成了"靓仔"或"靓女"

       至此,我们已经把模板字符串``应用到我们的案例当中了,到些可以来对比一下当前使用模

板字符串和原来的+拼接字符串的形式,很明显使用模板字符串可以让我们的开发变的更加的方

便,业务逻辑也更加的清晰,接下来,我们就使用模板字符串在我们卡其漫画项目当中去发挥

它应用的功能。

        本章节内容到此已经讲完,下节课我们来讲解发送ajax请求,获取数据,动态渲染页面。