5月学习总结(Ant-Design,mustache,require.js,grunt)
一、Ant-Design学习
因为Ant-Design是基于React实现的,之前自己也学过一段时间的React,对React还是相对比较熟悉的,在学习Ant-Design也还不算吃力。
- 最开始是从源码看起,从最简单的Icon组件看的,然后连续看了几个组件就有点吃不消了,哈哈哈。所以就改为实战了。
- 在Ant-Design官网上有一个Ant-Design快速上手的教程https://ant.design/docs/react/practical-projects-cn,可以跟着它学习一下,你可以从中学到dva的8个概念。dva 是一个基于 React 和 Redux 的轻量应用框架,概念来自 elm,支持 side effects、热替换、动态加载、react-native、SSR 等,已在生产环境广泛应用
- 学完上面那个基础教程之后,接着就开始学习Ant-Design的组件,一个一个看每个组件有哪些属性和方法,以及怎么使用。
- Ant-Design最适用的场景就是开发后台管理系统,就开始实践,可以去github上找一些别人写的例子来看,看完看懂之后可以自己再实践一遍。
二、mustache模板学习
这个模板和nodejs里面的ejs模板差不多,但是它的语法更简单,支持的语言也很多,具体可以到官网去看https://mustache.github.io/。
几个常用的语法
- {{prop}}:这个标签是mustache模板标签用的最多的一个了,可以将数据源上prop属性对应的值,转换成字符串输出。
- {{prop}}}:这个标签是为了防止prop中包含html标签,可以解析html标签,如果在{{prop}}中prop是html标签,那么会将标签原样输出。
- {{#prop}}{{/prop}}:这对标签的作用非常强大,可以同时完成if-else和for-each以及动态渲染的模板功能
- if-else渲染
只有prop属性在数据源对象上存在,并且不为falsy值(javascript 6个falsy值:null,undefined,NaN,0,false,空字符串),并且不为空数组的情况下,标签之间的内容才会被渲染,否则都不会被渲染:
2)for-each渲染
当prop属性所引用的是一个非空数组时,这对标签之间的内容将会根据数组大小进行迭代,并且当数组元素为对象时,还会把该对象作为每一次迭代的上下文,以便迭代时的标签可以直接引用数组元素上的属性:
<script id="tpl2" type="text/html">
-{{#prop}}{{name}},{{/prop}}-
</script>
<script>
var tpl2 = document.getElementById('tpl2').innerHTML.trim();
Mustache.parse(tpl2);
console.log(Mustache.render(tpl2, {prop: [{name: 'jason'}, {name: 'frank'}]}));//-jason,frank,-
</script>
如果prop属性所引用的是一个函数,但是这个函数返回值是一个数组类型,那么仍然会进行for-each渲染:
<script id="tpl2" type="text/html">
-{{#prop}}{{name}},{{/prop}}-
</script>
<script>
var tpl2 = document.getElementById('tpl2').innerHTML.trim();
Mustache.parse(tpl2);
console.log(Mustache.render(tpl2, {
prop: function(){
return [{name: 'jason'}, {name: 'frank'}];
}
}));//-jason,frank,-
</script>
3) 动态渲染
当prop属性所引用的是一个函数,并且这个函数的返回值还是一个函数的话,mustache会再次调用这个返回的函数,并给它传递2个参数:text表示原来的模板内容,render表示mustache内部的执行渲染的对象,以便在这个函数内部可以通过这render对象,结合原来的模板内容,自定义渲染的逻辑,并把函数的返回值作为渲染结果(这个返回值渲染的逻辑跟{{prop}}标签完全一样):
<script id="tpl2" type="text/html">
-{{#prop}}content{{/prop}}-
</script>
<script>
var tpl2 = document.getElementById('tpl2').innerHTML.trim();
Mustache.parse(tpl2);
console.log(Mustache.render(tpl2, {
prop: function(){
return function (text, render) {
return "<b>" + render(text) + "</b>"
};
}
}));//-<b>content</b>-
</script>
- {{^prop}}{{/prop}}:这个模板和{{#prop}}{{/prop}}作用相反,只有在数据源上prop属性对应的值不存在,是falsy值,空数组的时候,才会显示模板内容
- {{!content}}:注释掉content这段内容
三、require.js学习
之前在看grunt打包的代码时,有看到过define写法,我就去查了一下,原来是require.js的一种语法,在使用的时候,要特别注意路径问题。
- 因为官网都是英文,所以就先看的阮一峰大神的博客文章,粗略了解一下。
- 后来自己实践的时候,也遇到了问题,写了一个简单的引入mustache模板文件的demo,现在还没解决,因为当时解决了一天也没解决有点失落,所以就何弃疗了,有时间就去解决它。
四、grunt学习
因为项目中要用到,所以就临时学了一些它的配置以及服务器应该怎么搭建,还有看了一些插件的使用。
推荐一篇文章https://www.cnblogs.com/yexiaochai/p/3603389.html
5月学习总结(Ant-Design,mustache,require.js,grunt)的更多相关文章
- ant design pro/前端/JS:实现本地运行https
工具:github---mkcert 用于生成本地证书 ant p版本:1.0.0 这里我只说如何给antp部署https,以及会遇到的问题解决,其他请看原文参考 1.用mkcert生成证书,去git ...
- javascript模块化编程库require.js的用法
随着javascript的兴起,越来越多的公司开始将JS模块化,以增加开发的效率和减少重复编写代码的.更是为了能更加容易的维护日后的代码,因为现在的随着人们对交互效果的越来越强烈的需求,我们的JS代码 ...
- 【后台管理系统】—— Ant Design Pro入门学习&项目实践笔记(三)
前言:前一篇记录了[后台管理系统]目前进展开发中遇到的一些应用点,这一篇会梳理一些自己学习Ant Design Pro源码的功能点.附:Ant Design Pro 在线预览地址. Dashboard ...
- React学习及实例开发(二)——用Ant Design写一个简单页面
本文基于React v16.4.1 初学react,有理解不对的地方,欢迎批评指正^_^ 一.引入Ant Design 1.安装antd yarn add antd 2.引入 react-app-re ...
- Vue3学习(二)之集成Ant Design Vue
一.集成Ant Design Vue npm install ant-design-vue@2.0.0-rc.3 --save 兼容性 Ant Design Vue 2.x 支持所有的现代浏览器. 如 ...
- Ant Design 学习记录
遇到的问题: 点击列表中的一个字段 , 显示出一条指定id(其他筛选条件的)数据 解决这个问题之前,要先了解 Antd的 Table中的 Column 列描述数据对象,是 columns 中的一项 ...
- Ant Design Pro 学习笔记:数据流向
在讲这个问题之前,有一个问题应当讲一下: Ant Design Pro / umi / dva 是什么关系? 首先是 umi / dva 的关系. umi 是一个基于路由的 react 开发框架. d ...
- 使用express、react、webpack打包、socket.io、mongodb、ant.design、less、es6实现聊天室
拿到一个项目,我们应该如何去完成这个项目呢. 是直接上手? 还是先进行分析,然后再去解决呢?毫无疑问,如果直接上手解决,那么可能会因为知道目标所在,而导致出现各种问题. 所以,我们应该系统的分析这个项 ...
- Ant Design项目记录和CSS3的总结和Es6的基本总结
这里主要是介绍自己运用ANT框架的一些小总结,以前写到word里,现在要慢慢传上来, 辅助生殖项目总结:从每个组件的运用的方法和问题来总结项目. 1.项目介绍 辅助生殖项目主要运用的是Ant.desi ...
随机推荐
- Python代码这样写更优雅(转)
1.变量交换 大部分编程语言中交换两个变量的值时,不得不引入一个临时变量: >>> a = 1>>> b = 2>>> tmp = a>&g ...
- Python Matplotlib图表汉字显示成框框的解决办法
http://blog.sina.com.cn/s/blog_662dcb820102vu3d.html http://blog.csdn.net/fyuanfena/article/details/ ...
- C后端设计开发 - 第2章-内功-数据结构上卷
正文 第2章-内功-数据结构上卷 后记 如果有错误, 欢迎指正. 有好的补充, 和疑问欢迎交流, 一块提高. 在此谢谢大家了.
- kivy安装
>>> os.system('pip install kivy')Collecting kivy Downloading Kivy-1.9.1-cp27-none-win_amd64 ...
- SSH认证原理和批量分发管理
SSH密码认证原理 几点说明: 1.服务端/etc/ssh目录下有三对公钥私钥: [root@m01 ssh]# ls moduli ssh_config sshd_config ssh_host_d ...
- date 时间确定
获取当前时间: var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var d ...
- Mysql 数据库学习笔记04 函数
一.创建自定义函数 * 使用自定义函数,可以返回字符串.整型.实数或者其他类型: create [aggregate] function 名称 (参数列表) return type begin //函 ...
- jenkins构建触发器定时任务Build periodically和Poll SCM【转载】
转至博客:上海-悠悠 前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行. 一.定时构建语法 * * * * * ( ...
- 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记5——Direct3D中的顶点缓存和索引缓存
第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物 ...
- hdu 2389(二分图hk算法模板)
Rain on your Parade Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 655350/165535 K (Java/Ot ...