学习笔记

1.append(content)函数。content可以是一个字符串,dom,或者$(dom)

var dom = showData.length>0 ? template('template-studentGrid',{ items:showData}):'';
page===1? studentGrid.html(dom):studentGrid.append(dom);
if(showData.length === 0) return;
$(dom).filter('.item').each(function (i) {
$(this).data('data', showData[i]);
})  //dom和$(dom)是不同的变量了。$(dom)指向了不同的变量,因此 studentGrid中dom的.item肯定没有成功的加上data('data', showData[i])。
//修改的时候选中已改数据
$(curChooseListData).each(function (i, item) {
studentGrid.find('div.item[data-id="' + item.id + '"] i.check-ico').addClass('fa-check-circle').removeClass('fa-circle-thin');
}
改成这样:
var dom = showData.length>0 ? $(template('template-studentGrid',{ items:showData})):'';
page===1? studentGrid.html(dom):studentGrid.append(dom);
if(showData.length === 0) return;
dom.filter('.item').each(function (i) { //dom都是同一个变量
$(this).data('data', showData[i]);
})
//修改的时候选中已改数据
$(curChooseListData).each(function (i, item) {
studentGrid.find('div.item[data-id="' + item.id + '"] i.check-ico').addClass('fa-check-circle').removeClass('fa-circle-thin');
}
 

//左侧列表选中/取消
studentGrid.on('click', 'div.item', function () {
var item = $(this),
ico = item.find('i.check-ico'),
id = item.attr('data-id'),
data = item.data('data');//这里便能拿到data('data')了
//选中 if (ico.hasClass('fa-circle-thin')) { ico.addClass('fa-check-circle').removeClass('fa-circle-thin'); curChooseListData.push(data); refreshChosenList(); } else { chosenStudent.find('div.item[data-id="' + id + '"] i').click(); } })

2.append()与html(),text()的区别?

3.每打开一次modal,modal的js便会执行引进一次,也就绑定了一次事件。因为事件时绑在document上,关闭modal的时候,document没有关闭,为此只要一打开,就会又绑定一次事件。等到触发改事件的时候就会触发好几次,因为绑定了很多次。

4.列表外面可以传递各种数据参数到modal里面,包括列表刷新的函数。因为该modal还是在该document上的,所以modal可以执行列表外的刷新函数。这里注意了,是哪里打开的modal,即

loadHtmlModalWithParameters的,在该modal关闭的时候,关闭之后的回调函数回到load该modal的对应地方。不要搞错位置了。
5.max.width(calc(100% - 100px));
6.请求option和post是不一样的
7.decodeurl编码的问题
8.jquery.min.js是压缩文件
9.this.setState({xxx:bb} () =>{}),setState加回调函数?
10.authorize-res-tag 按钮权限
11.template(id,data),data是一个对象
12.setTimeout(fun(),t),setInterval(fun(),t)
13.$对象转dom对象 $()[0]或者$().get()
14.eq()和get()的区别
15.lastIndexof()字符串最后出现的位置
16.关于key,组件的key变了,生命周期会再走一遍。如果没变,只执行willreceiveprops。react是根据组件上的key来判断是否要重新走一遍生命期的。
key同级不重复。例如ul中的li加了key,react会根据key,value来比较dom元素,决定是否更新。
17.何为虚拟dom?react根据虚拟dom来对比不同,不同则更新。
18.根元素不同生命周期会再走一遍,
19,.状态提升:同一数据的变化,需要几个不同的组件来来反映。提升共享的状态到最近的祖先组件中。或则组件2想要拿到组件1的状态。那么组件1把状态提升到最近的父组件在中,组件2再去拿到组件1的状态。
20.受控组件:值由代码控制,value={value},一定要在state里面存它的值,并要在onchange里写好值。表单数据有react组件控制,可以控制用户的输入行为。不受控组件,值有它自己控制。什么时候使用受控和不受控?
21.dva: dva提供modal,获取内存数据,可以理解为一个可以存变量和拿变量的盒子,每个组件都可以链接它。modal是组件,Link也是组件。比如,两个组件要用到相同的资源,例如:loginUerName的信息。那么,两个组件就可以 分别connec这个modal拿到共享的数据。某个组件修改这个modal中的数据后,别的组件也可以拿来用的。
原文地址:https://www.cnblogs.com/susan-home/p/8759105.html