vuejs+layui的使用

之前在项目中一直使用的是 element-ui

但需要使用到流加载数据,这个 element-ui 中没有

没关系,这个流加载 在layui 中有现成的,下面让我们使用 layui :

官网:http://www.layui.com/

demo: http://www.layui.com/demo/flow.html

vuejs 是项目根目录

下载解压后,把 layui 放到 vuejs/static里面 , 目录如下:

编辑 vuejs/index.html , 加载 layui ,内容如下


 
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1.0">
  6. <link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico">
  7. <link rel="stylesheet" type="text/css" href="./static/layui/css/layui.css">
  8. <script type="text/javascript" src="./static/layui/layui.js"> </script>
  9. <title>我的博客 </title>
  10. </head>
  11. <body>
  12. <div id="app"> </div>
  13. <!-- built files will be auto injected -->
  14. </body>
  15. </html>

新建一个组件 vuejs/src/components/layui/flowdemo.vue 内容如下:


 
  1. <template>
  2. <div>
  3. <ul class="flow-default" id="LAY_demo2"> </ul>
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. data () {
  9. return {
  10. }
  11. },
  12. mounted: function () {
  13. this.$nextTick( function () {
  14. window.layui.use( 'flow', function(){
  15. let flow = window.layui.flow
  16. flow.load({
  17. elem: '#LAY_demo2' // 流加载容器
  18. , scrollElem: '#LAY_demo2' // 滚动条所在元素,一般不用填,此处只是演示需要。
  19. , isAuto: false
  20. , isLazyimg: true //
  21. , done: function(page, next){ // 加载下一页
  22. // 模拟插入
  23. setTimeout( function(){
  24. let lis = [];
  25. for( let i = 0; i < 6; i++){
  26. lis.push( '<li><img lay-src="http://s17.mogucdn.com/p2/161011/upload_279h87jbc9l0hkl54djjjh42dc7i1_800x480.jpg?v='+ ( (page -1)* 6 + i + 1 ) + '"></li>')
  27. }
  28. next(lis.join( ''), page < 6) // 假设总页数为 6
  29. }, 500);
  30. }
  31. })
  32. })
  33. })
  34. }
  35. }
  36. </script>

编辑 vuejs/src/router/index.js , 添加组件和路由,内容如下:

最后访问即可: http://localhost:8081/#/flow  效果如下: