如何在Pug的所有页面中全局引入mixins?
解决方法:在主布局中全局引入Mixins
没问题,这个需求很好实现——你只需要把mixins的引入语句直接加到主布局文件layouts/default.pug里,所有继承该布局的子页面就能自动使用这些mixins,不用再重复写include了。
修改后的layouts/default.pug代码:
doctype html include includes/mixins.pug // 在这里全局引入mixins html(lang=$localeName) block vars head meta(charset="UTF-8") meta(http-equiv="X-UA-Compatible" content="IE=edge") meta(name="viewport" content="width=device-width, initial-scale=1.0") block styles link(rel="stylesheet" type="text/css" href="/assets/css/styles.min.css") body block content
为什么这样有效?
当子页面通过extends继承这个布局时,布局文件里的所有内容(包括我们引入的mixins)都会被预加载到子页面的上下文里。这意味着子页面不需要自行引入mixins,就能直接调用+my_mixin()这类方法。
修改后的子页面示例(new_page.pug):
extends layouts/default block content +my_mixin('Hello World') // 直接使用mixins,无需额外include
你可以把include includes/mixins.pug放在布局文件的任何位置,只要确保它在所有可能调用mixins的代码之前就行——放在doctype之后是最稳妥的选择,因为所有子页面的内容都在block content里,肯定在这个引入语句之后执行。
内容的提问来源于stack exchange,提问作者user6347891
相关产品推荐
相关产品推荐

