ajax表单提交、art-template模板引擎

表单

作用:提供用户可以输入数据的组件,采集用户输入的数据提交到服务器
组成:1.表单标签:供用户输入的,如input、textarea、select
2.表单域:form标签,包含表单标签,让若干个表单标签形成一个整体
3.表单按钮:提交按钮、重置按钮

form标签的常用属性:
1.action:url地址,数据提交的地址;默认为当前页面的url地址;
2.target:规定在何处打开url地址 _blank 在新的标签页打开; _self 在当前标签页打开;
3.method:提交数据的方式;
get – 少量数据、数据无需隐藏的提交方式;
post – 大量数据、需要隐藏所提交的数据时的提交方式;
4.enctype:发送数据的编码格式;
application/x-www-form-urlencoded 在发送数据前对数据进行编码;
multipart/form-data 不对数据进行编码(上传文件必须使用该方式);
text/plain 不对数据进行编码,将空额转化为+;

表单提交数据的缺点
1.会发生页面跳转;
2.页面之前的状态和数据会丢失;

解决方式:使用ajax提交表单数据:
1.js代码监听表单提交事件
2.在提交事件触发时,通过事件对象阻止浏览器默认行为

form标签.onsubmit = function(e){
	e.preventDefault();
}

3.使用js代码收集表单数据

// jQuery方法
$(form标签).seialize();  // 注意:这个方法只收集form标签中有name属性的表单标签的值

// 原生js方法
// 通过标签名称获取value值

4.使用ajax把数据提交到服务器

art-template模板引擎

使用步骤:
1.在页面中引入js文件
2.定义将来要写入页面中的数据
3.定义模板:将来要和数据一起生成的html结构(模板字段写在script标签里,将script标签的type属性设置为text/html);

<script type="text/html" id="tem">
        <ul>
            <li>{{name}}</li>
            <li>{{age|forMat}}</li>
            <li>{{fav}}</li>
        </ul>
        <div>{{@ HTMLstr}}</div>
        <div>
            {{if flag === 0}}
            flag de zhi shi 0
            {{else if true}}
            flag de zhi bu shi 0
            {{/if}}
        </div>
        <ul>
            {{each hobby}}
            <li>{{$index}}</li>
            <li>{{$value}}</li>
            {{/each}}
        </ul>
        <div>{{date|getDate}}</div>
    </script>

4.调用template函数

var htmlStr = template(模板id,数据); // 注意模板id不写#
// template函数的返回值是将数据注入模板之后生成的字符串;

5.渲染html结构

DOM对象.innerHTML = htmlStr;

模板语法:
1.{{}} 标准语法 (将值对应的名称写在{{}}里,template会识别并替换数据);
2.常规输出 (变量、对象属性、三元表达式、逻辑或、加减乘除等)

{{value}}{{obj.key}}{{obj['key']}}{{a?b:c}}{{a||b}}{{a+b}}

3.原文输出 {{@value}}
需要把包含的html格式的字符串识别为标签时,使用该方式
4.条件输出

{{if value1}}
    输出内容
{{else if value2}}
    输出内容
{{/if}}

5.循环输出

{{each arr}}
	{{$index}} // 索引
	{{$value}} // 值、数据
{{/each}}

6.过滤器

{{value | filterName1 | filterName2}} // 上一个过滤器的输出会作为下一个过滤器的输入
// 定义过滤器:
template.defaults.imports.filterName = function (value) {
    // value表示从上一个输出接受到的数据
	return // 结果
}

模板引擎的实现原理

1.基本语法
exec() 函数用于检索字符串中的正则表达式的匹配。
如果字符串中有匹配的值,则返回该匹配值,否则返回 null。

RegExpObject.exec(string);
// 示例:
var str = 'hello';
var pattern = /o/;
// 输出的结果["o", index: 4, input: "hello", groups: undefined]
console.log(pattern.exec(str));

2. 分组
正则表达式中 ( ) 包起来的内容表示一个分组,可以通过分组来提取自己想要的内容,示例代码如下:

 var str = '<div>我是{{name}}</div>';
 var pattern = /{{([a-zA-Z]+)}}/;
 var patternResult = pattern.exec(str);
 console.log(patternResult);
 // 得到 name 相关的分组信息
// ["{{name}}", "name", index: 7, input: "<div>我是{{name}}</div>", groups: undefined]

3.字符串的replace函数
replace() 函数用于在字符串中用一些字符替换另一些字符,语法格式如下:

var result = '123456'.replace('123', 'abc') // 得到的 result 的值为字符串 'abc456'

4.使用while循环replace

var data = { name: '张三', age: 20 }
var str = '<div>{{name}}今年{{ age }}岁了</div>'
var pattern = /{{\s*([a-zA-Z]+)\s*}}/
var patternResult = null
while ((patternResult = pattern.exec(str))) {
 str = str.replace(patternResult[0], data[patternResult[1]]) }
console.log(str) // 输出  <div>张三今年20岁了</div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: uni-app-template是一款基于uni-app框架建立的通用模板,可以为开发者提供一个基础的项目结构和功能模块,减少开发的时间和工作量。 该模板的优势在于跨平台性能良好,支持同时开发多个平台的应用程序,并且可以达到近乎原生的用户体验。 在使用uni-app-template时,开发者可以选择不同的开发方式,如HBuilder X、VS Code等,也可以选择不同的UI框架和组件库进行二次开发。该模板还提供了常用的API,如ajax、storage、toast、loading等,方便开发者快速构建应用界面。 总之,uni-app-template是一款十分实用的通用模板,开发者可以通过基于此模板的项目,快速开发出高性能、跨平台的应用程序。 ### 回答2: uni-app-template是一个能够快速构建uni-app项目的通用模板。uni-app是一款跨平台开发框架,可以将一份代码同时转化为多个平台的应用程序,如微信小程序、App Store和Google Play应用商店,以及各种移动设备。 uni-app-template的特点主要体现在以下几个方面: 1.简单易用 uni-app-template是一个基于uni-app的通用模板,具有简单易用的特点,可以轻松构建平台适配性高、UI风格统一的app。 2.多平台适配 uni-app-template支持多种平台适配,不仅可以生成微信小程序应用,还可以生成iOS和Android应用,无需重新编写代码。因此,采用uni-app-template开发应用程序可以大大提高开发效率和代码复用率。 3.模块化开发 模板支持应用程序的模块化开发,可以将功能实现的代码封装在一个模块中,方便开发者进行管理和维护,并提高代码的可重用性和可维护性。 4.灵活配置 uni-app-template支持灵活配置,可以根据不同的需求选择不同的UI组件、主题颜色、字体、字号等参数,还可以根据具体平台的特点进行适配。 总之,uni-app-template是一个开发者在uni-app框架下快速构建多端应用程序的好选择。借助它,可以迅速构建高效、稳定、具备多端适配能力的app,大大提高开发效率和使用体验。 ### 回答3: Uni-app-template是一种用于uni-app框架的通用模板。uni-app是最近非常受欢迎的移动端应用开发框架,它可以一次编写,多端发布,不仅能够开发微信小程序,还可以开发iOS和安卓应用,还支持H5。 Uni-app-template能够提供一个通用的模板,以便开发者更加高效地完成开发工作。这个模板内置了一些常用的功能,例如页面布局,样式设置,组件引用等。开发者在使用这个模板时,可以根据自己的需要,逐步添加或修改代码,来实现自己的功能。 Uni-app-template中已经内置了很多通用的组件,例如tab栏、navbar、搜索栏等,这些组件可供开发者直接使用,以减少重复开发的工作量。 此外,Uni-app-template还内置了一些常用的插件,例如uni-ui(一个类似于Element UI的移动端UI组件库)、uview(一个为uni-app量身定制的UI库)等,这些插件可以帮助开发者更简单地进行开发工作。 Uni-app-template的另一个优点是它的兼容性。一旦应用开发完成,它将能够直接在各个平台上运行,包括微信小程序、iOS和安卓应用,以及H5网页应用。由于Uni-app框架和Uni-app-template具有良好的兼容性,使得开发者的工作更加高效和简单。 总之,Uni-app-template是一个非常实用和方便的开发工具,它能够帮助开发者更加快速、高效地完成应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值