这是我的 webpack.config.js和main.js
图4为页面结构
为什么我的js和css可以按需加载但是却销毁不了 而且css也没有被提取出来
有没有知道是什么原因的啊
你看看哪不对啊
我们先来说css
部分,你觉得dom
结构里平白多了style
标签很不爽,尤其在用完之后还不自动删除不爽,对吧?那你需要看的是style-loader
的Reference-counted API,通过以下手段:
//引入想要的css文件
var style = require('style/useable!css!./file.css');
//激活,也就是在dom中添加style标签
style.use();
//销毁,也就是不想用时,可以从dom中把style标签再删掉
style.unuse(); // = style.unref();
至于你说“没有提取出来”,那是因为你用的是style-loader,如果真想提取文件,应该用extract-text-webpack-plugin。
最后关于javascript
部分,script
标签从dom中删除这件事,其实意义不大,这么说吧,对你来说,最想把她从dom中移除的原因是什么?因为你的用户会检查你的dom?还是因为你觉得script
标签杵在那里影响了你的心情?
实际上,当script
标签添加之后,脚本内容开始下载/解析,甚至执行,该被运行时记录的变量都已经记录了。如果真有变量需要销毁,这也不是c,js有自己的垃圾回收机制,只要你没写出内存泄漏的代码,内存中的废弃物是会自动销毁的;换句话说,如果你代码写的倒出是问题,就算手动删了那个script
标签又如何?照样内存泄漏!
补充:
如果你想提取.vue
文件里的style css
内容,那你的loader
配置也没配对地方,应该是在vue
属性里配置:
vue: {
loaders: {
js: 'babel-loader?presets[]=es2015&plugins[]=transform-runtime&comments=false',
css: ExtractTextPlugin.extract(['css-loader'])
}
},
plugins: [
new ExtractTextPlugin('output.css')
]
具体参考extract-css