我正在使用的Vue物化css。我已将其安装为npm模块,并将其导入main.js中。
import Material from "materialize-css";
import "materialize-css/dist/css/materialize.min.css";
import "materialize-css/dist/js/materialize.min.js";
Vue.use(Material);所有的css都很好,但是,如果我尝试使用像materialbox这样的任何javascript组件
const mb = document.querySelectorAll(".materialboxed");
M.MaterialBox.init(mb, {});它给出了"M“未定义的错误。我该怎么办?我已经将物化-css添加为package.json的依赖项。
发布于 2018-07-19 21:50:10
发布于 2020-02-25 23:07:09
在组件中添加以下代码(例如App.vue):
import M from 'materialize-css'
export default {
...
mounted () {
M.AutoInit()
},
...发布于 2019-04-08 08:56:50
我想我会根据自己的经验给出一个不同的答案。我喜欢Materializecss,不想使用其他的东西,因为它更适合Vuejs。Materializecss似乎有一个更大的社区,也被其他使用Reactjs之类东西的人使用,所以我认为更喜欢它而不是一个利基库是有点理性的。
我在main.js中使用以下内容
import 'materialize-css/dist/css/materialize.css'
import 'materialize-css'另外,在public/index.html中,我为图标提供了以下内容:
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />对我来说,这似乎非常好,包括当我使用M.Toast...等。我认为区别在于我使用import 'materialize-css',而您有import Material from "materialize-css"。
不过,顺便提一句,我在构建时确实会遇到ESLint错误,尽管代码实际上可以工作,但它显示了'M' is not defined。ESLint只是不知道它在那里。为了消除这些问题,我使用了下面的恶意方法,将下面的行放在模块的顶部,在其中我使用了物化:
// Get rid of those pesky eslint errors for Materialize-css
if (typeof M == "undefined") {var M = {}}这有一个很好的效果,向我展示了它与顶部的import语句相似的地方,但我相信这确实是个糟糕的建议。
https://stackoverflow.com/questions/51429968
复制相似问题