elementUI按需引入两种方法

这里写自定义目录标题
element-ui中按需引入
为什么选择 element-ui 而不是 iview

1、按需引入

  1. 借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的:
  2. 更改.babelrc文件

2、 我们将按需引入的代码单独分割一下

  1. 在 src 文件夹中新建我们的 element 文件夹,并在里面新建一个 index.js 文件
  2. 在index文件中去书写我们需要引入的部分组件
  3. 在 main.js 中使用该文件,就大功告成了
    3、为什么要使用 单独分割的方式去按需加载
  4. 我们使用常规的方式再来加载一次
  5. 我们将引入的 Dialog 做一些修改,如下图
    element-ui中按需引入
    为什么选择 element-ui 而不是 iview
    因为在多次使用两个组件的过程中慢慢发现,iview 的一些组件还是需要再完善,而 element-ui 现在更加的成熟

所以, 这里我们一起来学习一下在 vue 中按需引入 element-ui 一些组件中的坑(Dialog组件)

这里我们使用的版本是 element-ui : 2.4.7,vue: 2.2.2

1、按需引入

  1. 借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的:
    npm install babel-plugin-component -D

2. 更改.babelrc文件

    "plugins": [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]

当然这里如果有其他的配置,只需要在 plugins 的数组中继续添加我们需要的配置代码就行了

我们将按需引入的代码单独分割一下

  1. 在 src 文件夹中新建我们的 element 文件夹,并在里面新建一个 index.js 文件
  1. 在index文件中去书写我们需要引入的部分组件
// 导入自己需要的组件
import { Select, Option, OptionGroup, Input, Tree, Dialog, Row, Col } from 'element-ui'
const element = {
  install: function (Vue) {
    Vue.use(Select)
    Vue.use(Option)
    Vue.use(OptionGroup)
    Vue.use(Input)
    Vue.use(Tree)
    Vue.use(Dialog)
    Vue.use(Row)
    Vue.use(Col)
  }
}
export default element

这里要使用 Select 组件,必须同时使用 Option 和 OptionGroup
这里的 install 方法表示在 main.js 中,如果使用 Vue.use() 方法的话,则该方法默认会调用 install 方法

  1. 在 main.js 中使用该文件,就大功告成了
    // css样式还是需要全部引入
    import 'element-ui/lib/theme-chalk/index.css'
    import element from './element/index'
    Vue.use(element)

3、为什么要使用 单独分割的方式去按需加载

  1. 我们使用常规的方式再来加载一次
    在 main.js 文件中 直接使用
import 'element-ui/lib/theme-chalk/index.css'
import { Dialog, Select, Option, OptionGroup, Input, Tree, Row, Col } from 'element-ui'
Vue.use(Select)
Vue.use(Option)
Vue.use(OptionGroup)
Vue.use(Input)
Vue.use(Tree)
Vue.use(Dialog)
Vue.use(Row)
Vue.use(Col)

不好意思,现在就报错了

我们在 element-ui 的源码中可以看到,的确使用的是 Dialog,但是我们在运行的时候还是报错了

  1. 我们将引入的 Dialog 做一些修改,如下图

可以看到,我们现在改成小写,项目是可以正常运行的,应该是不是 element-ui 的一些小失误吧,这样的写法会将我们的 main.js 文件变得很大很复杂,所以我们建议是 使用第一中方式来按需加载 element-ui 的一些组件



 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可能是因为你没有正确引入element-ui的样式文件。在使用element-ui之前,要先引入它的样式文件。可以在index.html中引入: ``` <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> ``` 或者在main.js中引入: ``` import 'element-ui/lib/theme-chalk/index.css'; ``` 如果还是没有样式,可以检查一下是否正确安装了element-ui,或者尝试重新安装一下。 ### 回答2: Vue作为一款流行的前端框架,不仅有着方便的组件化开发方式和灵活的状态管理机制,还支持引用第三方库来实现更加丰富的效果和功能。而ElementUI则是Vue常用的UI组件库之一,提供了一系列美观、易用且高度可定制化的UI组件,可以帮助开发者快速搭建出一套完善的前端界面。 然而,有时候在引入ElementUI时,会发现界面上并没有出现预期的UI效果,而只有简单的文本和默认的HTML元素。这可能是因为Vue引入ElementUI后,没有正确设置ElementUI的主题样式所导致的。 ElementUI的主题样式是根据页面中的变量进行设计的,如果没有为这些变量设置具体的值,那么组件的样式就不能正确地被渲染出来。我们可以通过以下步骤解决问题: 1. 在main.js中引入ElementUI,并在Vue实例中注册ElementUI。 ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 2. 在项目根目录下建立theme文件夹,并在其中添加index.scss文件。 3. 在index.scss文件中设置ElementUI的主题样式。我们可以到ElementUI官网上找到主题样式生成器(https://elementui.github.io/theme-chalk-preview/#/zh-CN),自行选择颜色搭配并生成相应的样式代码。 ``` @import "node_modules/element-ui/packages/theme-chalk/src/index"; @import "./variables.scss"; // 修改主题颜色 $--color-primary: #409EFF; $--color-success: #67C23A; $--color-warning: #E6A23C; $--color-danger: #F56C6C; // 引入变量文件 @import "./variables.scss"; // 重新编译主题 @include element-variables($theme); ``` 请注意,variables.scss是另一个用于设置ElementUI样式的文件,但是其中的变量要在index.scss中引用才能生效。具体设置可以根据官方文档和个人求进行调整。 4. 在webpack.base.conf.js中配置sass-loader,使得webpack能够编译scss文件。我们要先安装node-sass和sass-loader两个依赖。 ``` { test: /\.scss$/, loader: ['style', 'css', 'sass'] } ``` 设置完成后,我们重启项目即可看到正确的ElementUI样式效果。 总之,引入ElementUI无样式的问题主要是因为缺乏正确的主题样式设置所导致的。我们只要设置好变量、编译主题,然后在项目中正确引用即可。这也是一些类似问题的一般解决方法。 ### 回答3: Vue是一种用于构建用户界面的开源JavaScript框架,而ElementUI则是一个基于Vue.js的开源UI组件库,提供了许多易于使用、美观的组件和插件,使得开发者能够更加方便、快捷地构建出美观的Web界面。 如果在集成Vue和ElementUI的过程中,出现了ElementUI没有样式的情况,主要可能有以下几种情况: 1.引入ElementUI的JS文件,但没有引入它的CSS文件。在Vue中引入ElementUI要先引入其CSS文件,以便能够正确地展示样式。可以在自己的项目中安装ElementUI,然后在main.js或者App.vue文件中引入elementui的样式。可以使用以下命令进行安装: npm install element-ui -S 安装后,在要的地方引入即可,例如在main.js中,可以通过以下方式引入elementui的css文件: import 'element-ui/lib/theme-chalk/index.css'; 2.没有正确地进行配置。在一些情况下,可能由于缺少某些配置,导致ElementUI无法正常显示样式。在使用ElementUI的时候,要根据官方文档进行相应的配置,包括主题、字体大小等设置。在Vue中的配置文件,一般为vue.config.js,在这里可以进行全局配置,也可以进行单个组件的配置。 3.样式冲突。如果在项目中同时使用了其他UI组件库,可能会出现样式冲突的情况。为了解决这种问题,可以在Vue的样式中使用scoped来避免样式冲突。 以上是可能出现ElementUI没有样式的一些情况,如果您在项目中遇到了这样的问题,可以参考以上的解决方案,希望能够解决您的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值