vue-cli(vue2.x)中使用mixins(混入)

官网参考链接:https://cn.vuejs.org/v2/guide/mixins.html

前言:
混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

选项合并原则:

当组件和混入对象含有同名选项时,这些选项将以恰当的方式混合。

1、数据对象在内部会进行浅合并 (一层属性深度),在和组件的数据发生冲突时以组件数据优先
2、同名钩子函数将混合为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用
3、值为对象的选项,例如methods, components 和 directives,将被混合为同一个对象。两个对象键名冲突时,取组件对象的键值对

1、在项目的公共的common/js文件中建立一个mixin.js文件

里面的代码书写遵循组件中的js代码风格:
(多个组件中抽出共同部分来写入到mixin.js中,这样只需使用混入,就能够有改一变多的效果了,就不需要一个组件一个组件的进行修改)
ps:mixin.js中可以export多个mixin对象出去给不同的组件进行混入。

mixin.js代码风格如下:

export let playlistMixin = {
    // 当组件的dom准备好了之后触发的
    mounted(){
        this.handlePlaylist(this.playList);

    },
    // 当视图的keepalive切换的时候触发的
    activated(){
        this.handlePlaylist(this.playList);
    },
    //监听playList变化
    watch:{
        playList(newVal){
            this.handlePlaylist(newVal);
        }
    },
    computed:{
    //..............
    },
    methods:{
        handlePlaylist(){
            // 如果组件中没有定义handlePlaylist这个函数那么就会执行mixin里面的函数主动抛出异常
            throw new Error ('component must implement handlePlaylist method')
        }
    }
}

export let playerMixin = {
//这里又是另外混入的代码
}
2、引入mixins

在需要混入的组件中把这个mixin引入:

import {playlistMixin} from “common/js/mixin.js”

3、在vue组件中注册mixin

在组件的js代码块中注册。

<script>
import {playlistMixin} from "common/js/mixin.js" //在需要混入的组件中把这个mixin引入

export default{
	mixins:[playlistMixin] //注册mixins
}
<script/>
4、在使用混入的组件methods中实现mixin.js中的methods中的函数代码

(如果引入了mixins而不定义handlePlaylist这个函数就会直接调用mixin.js中的handlePlaylist函数,然后主动抛出异常错误)

<script>
export default{
methods:{
      handlePlaylist(playlist){
        //这里添加该组件要重写handlePlaylist函数的代码
      }
 }
} 
<script/>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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应用的开发和维护工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值