网易云dva开发日志 day2

无论天涯海角,朋友的呼唤都是岁月幽谷中最悠长的回声。有朋友的日子,不会孤独,不会忧伤,不会颓废。

(1) 裁剪文字,多余的显示省略号

1
2
3
4
5
搭配的css样式{(一句不能少,才能显示溢出部分省略号的效果)
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}

(2)上标和下标

1
2
3
4
5
6
7
8
9
10
11
<p>
This text contains <sub>subscript</sub>
</p>

<p>
This text contains <sup>superscript</sup>
</p>

This text contains subscript

This text contains superscript

(3)dva发送请求的坑

错误的写法

1
const temp = yield call(() => {songListService.getSongList(payload.tag)}, {});

正确的写法

1
const temp = yield call(songListService.getSongList, payload.tag);

太牛逼了奥

(4)

dva redux数据管理都在models,根据业务不同models可能会有几十甚至上百的 【模块.js】

每次在index.js使用 app.model(require(‘./models/example’).default); 引入 Model 可能要写多个,可能就不优雅了。

require.context()函数创建自己的上下文

它允许您传入一个目录进行搜索,一个标志指示是否应该搜索子目录,还有一个正则表达式来匹配文件。

语法

1
require.context(directory, useSubdirectories = false, regExp = /^\.\//);

参数

  • directory:说明需要检索的目录
  • useSubdirectories:是否检索子目录
  • regExp: 匹配文件的正则表达式

栗子

1
2
3
4
const models = require.context("./models", true, /^\.\/.*\.js$/);
models.keys().forEach(key => {
app.model(models(key).default);
});

(5)

如何实现根据分页组件的curPage发送对应的网易云api请求

请求如下

1
request(`http://localhost:3000/top/playlist?limit=35&order=new&cat="${tag} &offset=${curPage*35}`)

根据offset确定请求的页面,如offset=35表示第一页,70第二页,105第三页…35表示每页要展示的列表数。

-------------要说再见啦感谢大佬的光临~-------------