所属分类:web前端开发
随着前端技术的日渐发展,基于Vue.js的移动端开发框架uni-app也因其高度组件化和跨平台开发的特性被越来越多的开发者所青睐。然而,随着项目规模的增大,有时我们在使用uni-app开发的过程中也遇到一些问题。尤其是在引用组件过程中找不到相关的css,这个问题相信很多人都遇到过。本文将详细介绍uni-app中组件引用找不到css的解决方案。
一、问题描述
在uni-app中,我们开发时经常会使用到别人开发的组件库。但在使用过程中,我们会发现在引用其他组件库中的组件时,一些css样式并没有被成功引用,导致组件的显示效果出现问题,使得整个项目看起来非常不协调,如下图所示。
<div align=center>
<img src="https://img-blog.csdnimg.cn/20201129231656798.png"/>
</div>
二、问题分析
1.原因
通常情况下,组件的样式都会在组件内的style标签中进行定义,而组件的JavaScript代码在运行时会被动态地插入到页面中。但是,通过npm安装的第三方组件中的样式却无法被动态加载到页面中,导致样式打不到作用。
2.解决方案
既然问题的根源是组件的样式无法被动态加载到页面中,那么我们就需要想办法把第三方组件的样式加载到项目中去,我们可以使用以下两种方式进行解决:
① 将第三方组件的组件和样式从源码中直接复制到项目中,然后进行引用。此方法虽可行,但是会增加项目的复杂度,以及维护和更新的难度。
② 使用uni-app提供的样式扩展功能,将第三方组件的样式通过插件的方式加载到项目中。
三、解决方案实现
这里以Mint UI的样式为例,介绍如何使用uni-app提供的样式扩展功能将第三方组件的样式加载到项目中去:
我们需要首先安装uni-app提供的样式扩展插件。在uni-app项目中输入以下命令进行安装:
npm install uniapp-style-loader --save-dev
在项目根目录下找到vueconfig.js
文件,添加以下代码:
configureWebpack: { module: { rules: [ { test: /\.(vue|(j|t)sx?)$/, exclude: /node_modules/, use: [ { loader: 'uniapp-style-loader', options: { // 可选参数,最大改变css、less、scss数量(默认3000) maxImport: 3000, }, } ] } ] } },登录后复制
安装好样式扩展插件后,我们需要将需要引入的第三方组件的样式写到一个特定的文件中,例如我们将需要引入的Mint UI的样式写到assets/style/mint-ui.scss
文件中。然后在main.js
文件中进行引用:
// 引入样式 import '@/assets/style/mint-ui.scss';登录后复制
到这里,我们就已经将Mint UI的样式文件成功加载到我们的项目中。重新编译项目后,发现引入组件后的效果已经得到了良好的修复,如下图所示。
<div align=center>
<img src="https://img-blog.csdnimg.cn/20201129233432893.png"/>
</div>
四、总结
本文详细介绍了在uni-app中引用组件找不到css的解决方案。我们可以使用uni-app提供的样式扩展功能,将第三方组件的样式通过插件的方式加载到项目中。这样不仅能解决组件中样式找不到的问题,也能提高项目开发的效率。
以上就是uniapp中引用组件找不到css怎么解决的详细内容,更多请关注zzsucai.com其它相关文章!