航遇项目react踩坑

1.iconfont应用:

  a.正常用法如下

<span className=‘iconfont‘ > iconfont的代码,例如: </span>

  b.react不能动态渲染iconfont标签,需如下处理,icon为形参

<i dangerouslySetInnerHTML={{__html: icon}} className={‘iconfont‘} />

  c.引入项目中:需要在项目中复制iconfont的地址代码,类似如下的地址,官网生成

@font-face {
  font-family: ‘iconfont‘;  /* project id 413196 */
  src: url(‘//at.alicdn.com/t/font_413196_97fora1hdl81if6r.eot‘);
  src: url(‘//at.alicdn.com/t/font_413196_97fora1hdl81if6r.eot?#iefix‘) format(‘embedded-opentype‘),
  url(‘//at.alicdn.com/t/font_413196_97fora1hdl81if6r.woff‘) format(‘woff‘),
  url(‘//at.alicdn.com/t/font_413196_97fora1hdl81if6r.ttf‘) format(‘truetype‘),
  url(‘//at.alicdn.com/t/font_413196_97fora1hdl81if6r.svg#iconfont‘) format(‘svg‘);
}

2.排序方法

let dataList=["3","3","45"];
dataList.sort(function(a,b){
   return a-b
})
升序方法

3.获取节点属性

需要给DOM节点增加ref属性

4.下拉加载更多数据事件

步骤:a.在滚动滚动div上增加ref属性

<div ref={data=>this.content=data} ></div>

   b.compoonentDidMount中监听滚动事件,并调用判断事件

componentDidMount() {   // 加载渲染完成
        if (this.contentNode) {
            this.contentNode.addEventListener(‘scroll‘,this.onScrollHandle.bind(this));
        }
    }      

   c.判断滚动事件是否触发

//监听滚动条位置
    onScrollHandle(event) {
        const clientHeight = event.target.clientHeight;
        const scrollHeight = event.target.scrollHeight;
        const scrollTop = event.target.scrollTop;
        const isBottom = (clientHeight + scrollTop === scrollHeight);
        isBottom?setTimeout(this.lazy(),20000):"";
    }

5.父组件向子组件传值的方式

父组件.js  html:
    <子组件 parent={(data)=>this.parentEvent(data)} />
  js:
    parentEvent(data){
      //这里接收到的data为子组件传给父组件的
  }

子组件.js  html:
    <div onClick={this.click.bind(this)}></div>  js:    click(){
        this.props.parent(data)//这里的data是传给父组件的
      }

6.字符串的基础操作

函数:split()
功能:使用一个指定的分隔符把一个字符串分割存储到数组
例子:
str=”jpg|bmp|gif|ico|png”;
arr=theString.split(”|”);
//arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组 

函数:join()
功能:使用您选择的分隔符将一个数组合并为一个字符串
例子:
var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”);
var portableList=myList.join(”|”);
//结果是jpg|bmp|gif|ico|png 

函数:substring()
功能:用于提取字符串中介于两个指定下标之间的字符
例子:
“ABCDEF”.substring(0,2) //结果为su

函数:indexOf()
功能:返回字符串中匹配子串的第一个字符的下标
"ABCDEF".indexOf("A")  //结果为0
"ABCDEF".indexOf("BC")  //结果为1

函数:reverse()
功能:用于颠倒数组中元素的顺序
“05.03.2018”.split(".").reverse().join(".")  //结果为2018.03.05

7.正则验证

let reg=/判断格式/
reg.test(需要判断的内容)
返回个布尔值

8.antdUI组件

  a.DatePicker如果需要动态绑定数值的话,不能为空,浏览器会报错;需要对当前是否有值做判断,如果没值,需给个空的字符串,浏览器会报警告(待解决);

  b.DatePicker下的RangePicker,没值的时候可以传空数组,可解决;

原文地址:https://www.cnblogs.com/nailc/p/9028933.html

时间: 2024-11-05 14:45:21

航遇项目react踩坑的相关文章

React踩坑记(一)——API React和ReactDOM,擅自引入cdnjs的后果

今天开始学习React,一开始就遇到好多坑,花了不少时间(当然也是花费了指导我的那位大神的时间). 特此记录,也方便有人踩坑的时候避免这样的情况再出现. 中文网站和国外官网 首先说一下英文官网:http://facebook.github.io/react/index.html 作为一个英文差到极点的程序员小白,在这门技术面前毅然决然地选择了中文官网:http://reactjs.cn/ 但是!这是一个坑点,因为技术更新的原因,肯定在中文网的版本跟官网的版本是有落差的.所以在跟着中文网的教程敲代

React 踩坑笔记

props可以用两种理解,一是可以被当做构建React节点的参数,二是可以被理解为HTML标签的属性.具体如下 当props与一个已知HTML属性相同时,当他被加入最终DOM中的HTML元素时,它就是该元素的属性: 当被传入React.createElement()中当做参数时,也可以是React node实例里的各种值. 一些特殊的用法,比如说key.ref.dangerouslySetInnerHtml React Stateless Function Component(无状态函数组件)

新版react踩坑总结

使用es6语法与原本es5语法几个有区别的地方 1.React.creatClass与React.Component 1 var Component = React.createClass({ 2 render() { 3 return ( 4 <div></div> 5 ); 6 } 7 }); 1 class Component extends React.Component { 2 constructor(props) { 3 super(props); 4 } 5 rend

ABP项目入门踩坑

1.下载ABP项目模板, 打开网址https://aspnetboilerplate.com/Templates,选择MultiPage Web Application,输入项目名称和验证码,即可点击Create My Project按钮下载代码 2.下载完成之后,会跳到https://aspnetboilerplate.com/Pages/Documents/Zero/Startup-Template-Core页面,即开始文档,按照文档就可以完成入门的操作了. 3.安装最新版本的VS2017,

vue项目打包踩坑记

基于webpack+vue-cli下的vue项目打包命令是 npm run build ,等待打包完成后在根目录生成dist文件夹,里面包含了所有项目相关的内容. 注意:需要完整版的vue-cli项目,即通过vue init webpack初始化的项目才可以,通过vue init webpack-simple初始化的项目没有打包文件,无法打包.目录结构如下 vue init webpack初始化的目录结构,打包依赖build和config文件夹的配置,static存放静态文件 vue init

angular-file-upload 项目实践踩坑

API文档: https://github.com/nervgh/angular-file-upload/wiki/Module-API 过程中得到昊哥的鼎力帮助,感谢. 需求如下,分别选择多个文件,然后一键上传. //一开始使用方法,不能重复点击上传  var uploader= new FileUploader(); uploader.uploadAll(); //最后使用的方法 var queueLen = uploader.queue.length; for(var i=0; i<que

react踩坑记录——使用fetch获取json数据报错

报错: 原因其实是list.json文件路径错误,该文件路径是相对于index.html的,而不是App.js或者index.js.

项目(踩坑)_vue中使用input file类型的时候获取不到当前的inputFile对象

一.解决方法: <template>中 <script>中 原文地址:https://www.cnblogs.com/xxm980617/p/11367946.html

项目(踩坑)_移动端在使用touch滑动事件的时候会出现抖动现象

一.解决办法:给body添加一个position-fixed类即可 body { position: fixed; top: 0; left: 0; right: 0; bottom: 0; margin: 0; overflow: hidden; } 原文地址:https://www.cnblogs.com/xxm980617/p/11613611.html