在vue-cli中引入lodash.js并使用

在vue-cli中引入lodash.js并使用

  • lodash是一套工具库,它内部封装了诸多对字符串、数组、对象等常见数据类型的处理函数。
  • 中文文档: https://www.lodashjs.com/docs/4.17.5.html
  • lodash的所有函数都不会在原有的数据上进行操作,而是复制出一个新的数据而不改变原有数据
  • 模块的组成:
    • Lodash 提供的辅助函数主要分为以下几类:
      Array,适用于数组类型,比如填充数据、查找元素、数组分片等操作
      Collection,适用于数组和对象类型,部分适用于字符串,比如分组、查找、过滤等操作
      Function,适用于函数类型,比如节流、延迟、缓存、设置钩子等操作
      Lang,普遍适用于各种类型,常用于执行类型判断和类型转换
      Math,适用于数值类型,常用于执行数学运算
      Number,适用于生成随机数,比较数值与数值区间的关系
      Object,适用于对象类型,常用于对象的创建、扩展、类型转换、检索、集合等操作
      Seq,常用于创建链式调用,提高执行性能(惰性计算)
      String,适用于字符串类型
  • 常用方法:(有很多,可查看文档)
    1. times:循环N次
      _.times(5, function(){ // ... });

    2. cloneDeep:深度克隆JavaScript对象
      var objB = _.cloneDeep(objA);

    3. random:在指定范围内获取一个随机值
      _.random(20); // 返回 0 到 20的随机数 _.random(15, 20, true); // 返回 15 到 20的浮点型随机数;

    4. assign:扩展对象

      var objA = {"name": "colin", "car": "suzuki"};
      var objB = {"name": "james", "age": 17};
      
      _.assign(objA, objB););
      
    5. omit:从对象中删除属性

      var objA = {"name": "colin", "car": "suzuki", "age": 17};
      bjA = _.omit(objA, ['car', 'age']); // {"name": "colin"}
      
    6. forEach:对集合中的元素进行遍历,调 用function (迭代函数)遍历 collection中的每个元素,function如果显式的返回 false ,迭代会提前退出。
      _.forEach(collection, function (value, index, collection){})

    7. map: 创建一个数组,value(值) 是 function(迭代函数)遍历 collection中的每个元素后返回的结果。某次迭代的返回值可能是null
      _.map(collection, function (value, index, collection){})

    			    
    			let arr = [
    			    {
    			       id: '1',
    			       name: '山有木兮木有枝',
    			       age: 23,
    			       createTime: '2018-12-12'
    			    },
    			    {
    			       id: '2',
    			       name: '心悦君兮君不知',
    			       age: 31,
    			       createTime: '2018-12-13'
    			    }
    			    // 其余省略
    			    _.map(arr, 'id')    // => [1, 2]  //只用到id
    
    1. find: 返回 function(断言函数)第一个返回真值的第一个元素。如果没有匹配元素返回undefined
      _.find(collection, function (value, index, collection){})
      
      var users = [
        { 'user': 'barney',  'age': 36, 'active': true },
        { 'user': 'fred',    'age': 40, 'active': false },
        { 'user': 'pebbles', 'age': 1,  'active': true }
      ];
      
      _.find(users, function(o) { return o.age < 40; });
      // => object for 'barney'
      
      _.find(users, { 'age': 1, 'active': true });
      // => object for 'pebbles'
      
      _.find(users, 'active');
      
      // => object for 'barney'
      
  • 在vue里面使用lodash.js
    下载: npm i --save lodash,在package.json中显示,则表示下载成功
    在main.js中使用:
    import _ from "lodash";
    在页面中使用: let data = _.cloneDeep(this.userInfoData)
    在项目中使用:
    roleAll.post({projectCode:projectCode,organizeId:organizeId}, this).then(res => {
        if (this._.isArray(res)) {  //判断后端返回的数据类型
          //console.log(res)
          this.roleARR = res
        }
      })
  • webpack按需打包lodash.js
  1. 下载:

    npm install lodash --save
    npm install lodash-webpack-plugin babel-plugin-lodash --save-dev
    

    第二行的部分插件 webpack 模板已经默认安装

  2. 修改 .babelrc
    plugins 中添加 lodash,我的项目添加完如下:
    "plugins": ["transform-vue-jsx", "transform-runtime", "lodash"]

  3. 修改 webpack.prod.config.js
    由于我只需要打包时体积小即可,所以添加到这个配置文件中

    const LodashModuleReplacementPlugin = require('lodash-webpack-plugin')
    
      // 省略
      plugins: [
        new LodashModuleReplacementPlugin(),
        // 你的其他配置
      ]
    
  • 补充: 如何在vue项目打包去掉console?
    在项目中的build/webpack.prod.conf.js文件中
new webpack.optimize.UglifyJsPlugin({
  compress: {
    warnings: false,
    drop_debugger: true,
    drop_console: true
  },

添加此配置就可以在打包之后去掉控制台的打印输出

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: vue-cli3 vue.config.js 文件用于配置项目的 webpack 构建环境。可以在该文件进行如下配置: - 修改 webpack 的配置项 - 配置 devServer - 配置代理 - 使用插件 示例: ``` module.exports = { devServer: { port: 8080, proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true } } }, configureWebpack: { plugins: [ new MyAwesomeWebpackPlugin() ] } } ``` 其,configureWebpack 配置项可以修改 webpack 的配置项,devServer 配置项可以配置开发服务器的相关选项,proxy 配置项可以配置代理。 注意:vue.config.js 文件不是必须的,如果项目没有该文件,则使用默认配置。 ### 回答2: Vue CLI 3是Vue.js的一个脚手架工具,用于快速构建Vue项目vue.config.js是一个配置文件,它在项目构建过程被调用,用于配置Webpack和Vue CLI的一些选项。 vue.config.js配置文件可以设置很多选项,包括开发时代理、打包时的压缩和代码分割等等。下面是一些常用的选项: 1. publicPath publicPath是一个字符串,用于指定打包后的静态资源的路径。可以是相对路径或绝对路径,它的值会被Webpack在生成代码时加入到各个静态资源引用的URL。 2. outputDir outputDir是一个字符串,用于指定打包后的输出目录。默认值是"dist"。 3. devServer devServer是一个对象,用于配置开发服务器。其包括代理、端口号和自动打开浏览器等选项。可以用它来配置前后端联调、Mock服务等。 4. chainWebpack chainWebpack是一个函数,用于修改Webpack的配置。可以在其添加、删除、修改各种Webpack配置项。举个例子,我们可以通过chainWebpack来关闭ESLint验证: ``` chainWebpack: config => { config.module .rule('eslint') .use('eslint-loader') .tap(options => { options.emitWarning = false return options }) } ``` 5. configureWebpack configureWebpack是一个对象或函数,用于向Webpack配置添加内容。其包括Entry和Output等选项。 6. optimization optimization是一个对象,用于配置打包时的优化选项,比如代码压缩等。 7. css css是一个对象,用于配置CSS的选项。其包括分离CSS、压缩CSS、CSS的sourceMap等。 8. pluginOptions pluginOptions是一个对象,用于配置Vue CLI插件的选项。其包括ESLint、Stylelint、PWA等。我们可以通过它来关闭ESLint验证: ``` pluginOptions: { eslint: { enable: false } } ``` 除了上面提到的常用选项,vue.config.js还有很多其他配置项可供选择,具体可参考Vue CLI的官方文档。总的来说,vue.config.js是一个非常强大的工具,可以大大提高开发效率和优化打包结果。 ### 回答3: Vue.js是目前非常流行的前端框架之一,它的灵活性和易用性受到了广大开发者的欢迎。其最新的版本Vue-cli3,提供了更加方便快捷的开发模式,同时其强大的配置功能也是特别值得注意的。Vue-cli3vue.config.js文件包含着许多重要的配置选项,下面我们来逐一介绍一下。 1. publicPath publicPath选项可以指定发布路径,通过配置publicPath选项,可以将Vue应用的资源文件发布到指定的位置,这样就方便我们在多个环境部署Vue应用。例如,如果希望将Vue应用文件发布到“/my-app/”目录下,配置publicPath选项为“/my-app/”即可。 2. outputDir outputDir选项用于指定Vue应用的输出目录,通过配置outputDir选项,可以将Vue应用打包生成的文件输出到指定的目录下面。例如,如果希望将生成的文件输出到“/dist/”目录下,那么可以在vue.config.js文件配置outputDir选项为“dist”。 3. devServer devServer选项用于配置开发服务器,对于Vue应用的开发来说,它非常重要。通过配置devServer选项,可以定制开发服务器的端口、代理等信息,使我们在开发Vue应用时能够更加方便地进行调试和测试。 4. lintOnSave lintOnSave选项用于在保存代码时自动检查语法错误和格式错误,让我们在开发过程能够更加精细地把控代码质量。通过配置该选项,可以将Vue应用的代码自动规范,并保持统一的风格。 5. chainWebpack chainWebpack选项用于定制Webpack的配置,它可以让我们更加灵活地定制Vue应用的构建过程。通过配置该选项,可以添加自定义的Webpack插件,优化打包生成的文件等。 总之,Vue-cli3vue.config.js文件不仅提供了强大的配置功能,而且能够让我们更加方便地开发和部署Vue应用。掌握这些配置选项,能够让我们更加高效地进行Vue应用的开发和维护工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值