IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 详细模板引擎 -> 正文阅读

[系统运维]详细模板引擎

目录

2.1、回顾表单

2.1.1 组成

2.1.2 form标签属性?

2.1.3 表单的同步提交及缺点

2.1.4 阻止表单默认提交行为

2.2、模板引擎

2.2.1 简单的模板引擎

2.2.2?art-template模板引擎

2.2.3 标准语法

2.2.4 过滤器


2.1、回顾表单

????????表单在网页中主要负责数据采集功能,并通过from标签的提交操作,把采集的信息提交到服务器端处理

2.1.1 组成

表单域<form></form>内的区域
表单标签包含了文本框,密码框,隐藏域,都行文本框,复选框,单选框,下拉选择框和文件上传框等等
表单按钮通过设置type属性为submit来触发form表单的提交

?form标签用来采集数据,form标签的属性则是用来规定如何把采集到的数据发送到服务器

2.1.2 form标签属性?

属性描述
actionURL地址规定当提交表单时,向何处发送表单数据
methodget或post规定以何种方式把表单数据提交到action URL,默认为get
enctypeapplication/x-www-form-urlencoded
multipart/form-data
text/plain
规定发送表单数据之前如何对其进行编码
target_blank?? ?在新窗口中打开被链接文档。
_self?? ?默认。在相同的框架中打开被链接文档。
_parent?? ?在父框架集中打开被链接文档。
_top?? ?在整个窗口中打开被链接文档。
framename?? ?在指定的框架中打开被链接文档。
规定在何处打开action URL

注意:

action:当提交表单后,页面会立即跳转到action属性指定的URL地址没有指定action会提交到当前页面

method:

  • get提交表示通过以URL地址提交数据(适合用来提交少量的简单的数据)
  • post提交不会在URL地址中显示出来(适合用来提交大量的、复杂的或包含文件上传的数据)

enctype:

  • application/x-www-form-urlencoded:在发送前编码所有字符(默认)
  • multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
  • text/plain:空格转换为 "+" 加号,但不对特殊字符编码。

2.1.3 表单的同步提交及缺点

????????通过点击 submit 按钮,触发表单提交的操作,从而使页面跳转到 action URL 的行为,叫做表单的同步提交

缺点:

  • from表单同步提交后,整个页面会发生跳转,跳转到action URL所指的地址,用户体验差
  • from表单同步提交后,页面之前的状态和数据会丢失

2.1.4 阻止表单默认提交行为

????????当监听到表单的提交事件以后,可以调用事件对象的event.preventDefault()函数,来阻止表单的提交和页面的跳转

<script src="./js/jquery.js"></script>
<script>
    $("#form").submit(function(e){
        e.preventDefault();
    });
    $("#form").on('submit',function(e){
        e.preventDefault();
    })
</script>

2.2、模板引擎

????????之前在渲染UI结构的时候,拼接字符串是比较麻烦的,而且很容易会出现问题。模板引擎它可以根据程序员的指定的模板结构和数据,自动生成一个完整的HTML页面

好处:

  • 减少了字符串的拼接操作
  • 使代码结构更清晰
  • 使代码更易于阅读与维护

2.2.1 简单的模板引擎

<!DOCTYPE html>
<html lang="zh-ch">
<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>
<body>
    <div id="content"></div>
</body>
<script>
    const str = '我叫{{name}},今年{{age}}';
    const obj = {
        name:"张三",
        age:22
    }
    let reg = /{{(\w+)}}/g;
    // let reg = /(\w+)/g
    var res = str.replace(reg,(a,b)=>obj[b]);
    console.log(res);
</script>
</html>

2.2.2?art-template模板引擎

步骤:

  1. 通过<script>标签导入art-template
  2. 定义数据
  3. 定义模板

注意:

  • 模板的HTML结构,必须定义到script标签中,需要把type属性改成text/html
  • 给模板添加一个id
  • 模板里面如果需要使用到传入的数据,利用{{}}来实现
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>隔行变色</title>
    <style>
      div {
        font-size: 14px;
        color: white;
        line-height: 30px;
        margin-bottom: 5px;
      }
      .odd {
        background-color: lightblue;
        padding-left: 5px;
      }
      .even {
        background-color: lightpink;
        padding-left: 5px;
      }
    </style>
  </head>
  <body>
    <h1>名言大全</h1>
    <!-- 容器 -->
    <div id="container"></div>
    <script src="./lib/jquery.js"></script>
    <!-- 1. 引入模板引擎 -->
    <script src="lib/template-web.js"></script>
    <!-- 3. 定义模板 -->
    <script type="text/html" id="my">
      <h4>
        {{each array}} {{if $index % 2 ===0}}
        <div class="even">{{$value}}</div>
        {{else if $index % 2 !==0}}
        <div class="odd">{{$value}}</div>
        {{/if}} {{/each}}
      </h4>
    </script>
    <script>
      // 2. 定义好数据
      let data = {
        array: [
          "知人者智,自知者明。胜人者有力,自胜者强",
          "一个人即使已登上顶峰,也仍要自强不息",
          "要掌握书,莫被书掌握;要为生而读,莫为读而生",
          "业精于勤,荒于嬉;行成于思,毁于随",
          "只要持续地努力,不懈地奋斗,就没有征服不了的东西",
          "既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去",
          "滴 滴滴~",
        ],
      };
      // 4. 调用 template() 函数,获取到模板引擎拼接好的HTML字符串,渲染到 container 容器里面
      var date = template("my", data);
      console.log(date);
      $("#container").html(date);
    </script>
  </body>
</html>

?2.2.3 标准语法

输出类型语法说明
普通输出{{ value }}
{{ obj.key }}
{{ obj['key'] }}
{{ a ? b : c}}
{{ a || b }}
{{ a + b }}
在 {{}} 语法中,可以进行 变量 的输出,对象属性的输出,三元表达式输出,逻辑或输出,加减乘除等表达式输出
原文输出{{ @ value }}如果输出的 value 值中,包含了 HTML 标签结构,则需要使用原文输出语法,才能保证HTML标签被正常渲染
条件输出{{ if value }} 按需输出的内容 {{/if}}
{{ if v1 }} 按需输出的内容 ?{{ else if v2 }} 按需输出的内容 {{/if}}
如果要实现条件输出,则可以在 {{}} 中使用 if...else if.../if 的方式,进行按需输出
循环输出{{each arr}}
? ? {{$index}} {{$value}}
{{/each}}
如果要实现循环输出,则可以在{{}} 内,通过 each 语法循环数组,当前循环的索引使用 $index 进行访问,当前循环项使用 $value 进行访问

2.2.4 过滤器

?????????过滤器本质就是一个function函数

注册过滤器:

template.defaults.imports.函数名 = function(value){return 返回的值}

标准语法:{{date | 函数名 | dateFormat ''}}

<!DOCTYPE html>
<html lang="zh-ch">
<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>
<body>
    <div id="up"></div>
    <script type="text/html" id="dx">
    {{ name | fifter }}    //过滤器语法类似管道操作符,它的上一个输出作为下一个输入
    </script>

<script src="lib/jquery.js"></script>
<script src="lib/template-web.js"></script>
<script>
    const obj = {
        name : "pink"
    }
    template.defaults.imports.fifter = function(value){
    return value[0].toUpperCase() + value.slice(1);
}
const str = template("dx",obj);
$("#up").html(str)
</script>
</body>
</html>

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:51:46  更:2021-10-23 12:52:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:47:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码