laypage is not defined 是因 laypage 模块未加载,非拼写错误;必须通过 layui.use(['laypage'], function(){}) 显式加载,确认 layui.js 同级存在 lay/laypage.js 或 cdn 为完整版。

laypage is not defined 是模块没加载,不是拼写错误
这个报错根本不是你打错了 laypage,而是 layui 自身的模块系统压根没把 laypage 注入进来。它和 layui is not defined 属于同一类问题——资源没到位或加载时机不对。
常见表现:
Uncaught ReferenceError: laypage is not defined- 调用
layui.laypage.render时提示Cannot read property 'render' of undefined - 但
layui对象存在,layui.table却能用(说明模块加载不全)
实操建议:
- 确认是否显式加载了
laypage模块:layui.use(['laypage'], function(){...}),不能只写layui.use(['table'])就以为分页自动有了 - 检查
layui.js同级目录下是否存在lay/laypage.js文件(Layui 2.x 默认内置,但若用了精简版或自定义构建,可能被剔除) - 如果用了 CDN,确认 URL 是否指向完整版,例如:
https://cdn.jsdelivr.net/npm/layui@2.9.12/dist/layui.js(别用带-mini后缀的) - 避免在
layui.use外部直接调用layui.laypage.render,模块异步加载完成前,laypage还未挂载到layui上
elem 参数传 '#xxx' 会触发 innerHTML 报错,但不是这个报错
注意区分:Uncaught TypeError: Cannot read property 'innerHTML' of null 是 elem 找不到容器,和 laypage is not defined 完全无关。前者是配置写错,后者是模块根本没加载。
如果你同时看到这两个报错,说明问题分两层:先解决模块加载(本节),再修正 elem: 'pagination' 写法(去掉 #)。
容易踩的坑:
- 误以为
laypage是全局函数,直接写laypage.render(...)—— Layui 2.x 不支持这种写法,必须走layui.laypage.render - 在
layui.use回调里写了laypage.render,但漏了依赖声明:layui.use(['laypage'], ...)缺失导致回调根本不执行 - 用构建工具(如 webpack)时,手动
import layui但没配layui-modules插件,laypage模块不会自动注册
表格里用 page: true 却没分页栏,别急着查 laypage
如果你是在 table.render 里设了 page: true,结果分页栏不显示,页面还报 laypage is not defined,大概率是因为 laypage 模块缺失导致表格内部调用失败,而不是表格配置问题。
验证方式:打开浏览器 Network 面板,过滤 laypage.js,看有没有 404;或者在控制台输入 layui.laypage,返回 undefined 就坐实了。
此时不要折腾 table 的 page.layout 或 limits,先确保 laypage 可用:
- 加一行测试代码:
layui.use(['laypage'], function(){ console.log('laypage loaded:', layui.laypage); }); - 如果控制台没输出,或输出
undefined,就回到上一节检查模块加载路径和依赖声明 - 只有确认
layui.laypage存在后,再排查表格分页配置(比如count字段缺失、响应结构不匹配等)
CDN 或本地路径 404 时,Network 面板比报错更可靠
控制台报 laypage is not defined 是结果,真正原因往往藏在 Network 面板里。很多开发者反复检查 JS 顺序,却忽略一个事实:Layui 的模块是按需加载的,laypage.js 是独立请求。
操作步骤:
- 打开 DevTools → Network → 刷新页面
- 筛选
lay/或laypage,找状态码非 200 的请求 - 如果看到
lay/laypage.js 404,说明路径错或文件缺失;如果是pending或cancelled,可能是跨域或加载阻塞 - 本地开发时,确保服务器支持目录索引(比如用
http-server而不是直接双击打开 HTML)
路径问题最典型的是多了一级 src 或少了一级 dist,例如正确路径是 ./layui/dist/layui.js,却写了 ./layui/layui.js —— 这会导致整个模块体系加载失败,laypage 自然不存在。











