vue项目引用 iView 组件——全局安装与按需加载

随着Vue框架的热度,出现了不少基于Vue的UI组件库,这次项目用到了 iView 这个组件库。使用方法官网很详细。

官网:https://www.iviewui.com/

这篇文章主要是记录一下npm 全局安装以及按需引用的用法。


一、全局引用

①、先安装iview          npm install iview -save
       Tips:你可能注意npm install 的时候,有时候会加--save,有时又是--save-dev,那他们该什么情况下区分使用呢。发现一篇比较不错的文章https://www.limitcode.com/detail/59a15b1a69e95702e0780249.html

②、在 webpack 入口页面 main.js 中如下配置

import Vue from 'vue';
import iView from 'iview';
import 'iview/dist/styles/iview.css';

Vue.use(iView);

 ③、在组件里面直接调用   如:<Button>Default</Button>


二、按需引用(前提是按照全局引用的步骤①②安装了需要的组件)

借助插件 babel-plugin-import可以实现按需加载组件,减少文件体积。

①、先安装 babel-plugin-import          npm install babel-plugin-import --save-dev

②、在文件 .babelrc 中添加配置

"plugins": [
    "transform-vue-jsx", "transform-runtime",
    ["import", {
      "libraryName": "iview",
      "libraryDirectory": "src/components"
    }]
  ]

本以为万事大吉,可以开始用了,但是报错了!!!!!

别慌~~~~~~查阅一些资料之后了解到,添加按需加载的插件之后就不可以用下面的方式引入iview。main.js只需配置css

import Vue from 'vue'
// import iView from 'iview'
import 'iview/dist/styles/iview.css'

// Vue.use(iView);

③、按需引用可以在全局注册组件也可以在调用的页面注册

aaa~组件中调用方法

<template>
    <Button type="success">Success</Button>
</template>

<script>
import { Button } from 'iview'    //用到什么组件引入什么组件
export default {
    components:{
        Button
    }
}
</script>

bbb~全局注册需要用的组件

import { Button, Table } from 'iview';
Vue.component('Button', Button);
Vue.component('Table', Table);

 


下面就来验证一下结果, 打包后的vender.js确实变化比较大。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 项目中使用 webpack 将多个组件合并打包并实现按加载要使用 webpack 的 code splitting 功能。具体步骤如下: 1. 在 webpack 配置文件中配置 code splitting: ```javascript // webpack.config.js module.exports = { // ... optimization: { splitChunks: { chunks: 'async', minSize: 30000, maxSize: 0, minChunks: 1, maxAsyncRequests: 5, maxInitialRequests: 3, automaticNameDelimiter: '~', name: true, cacheGroups: { vendor: { test: /[\\/]node_modules[\\/]/, name: 'vendor', chunks: 'all' }, common: { name: 'common', minChunks: 2, chunks: 'all', priority: -10, reuseExistingChunk: true } } } } }; ``` 2. 在组件中使用 `import()` 动态导入其他组件: ```javascript // MyComponent.vue export default { methods: { handleClick() { import('./OtherComponent.vue').then(module => { const OtherComponent = module.default; // 使用 OtherComponent 组件 }); } } }; ``` 3. 在模板中使用 `v-if` 或 `v-show` 按显示组件: ```html <template> <div> <button @click="showOther">Show Other Component</button> <OtherComponent v-if="show" /> </div> </template> <script> export default { data() { return { show: false }; }, methods: { showOther() { import('./OtherComponent.vue').then(module => { const OtherComponent = module.default; this.show = true; }); } } }; </script> ``` 这样,webpack 会根据配置将多个组件打包成多个文件,并在要时动态加载。注意,`import()` 返回的是一个 Promise,要使用 `then()` 方法获取模块的导出值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值