iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vue中mixins的使用方法及实际项目应用是什么
  • 391
分享到

Vue中mixins的使用方法及实际项目应用是什么

2023-07-05 17:07:40 391人浏览 独家记忆
摘要

这篇文章主要介绍了Vue中mixins的使用方法及实际项目应用是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中mixins的使用方法及实际项目应用是什么文章都会有所收获,下面我们一起来看看吧。(1)

这篇文章主要介绍了Vue中mixins的使用方法及实际项目应用是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中mixins的使用方法及实际项目应用是什么文章都会有所收获,下面我们一起来看看吧。

    (1)mixin基础

    官网解释(Vue2.x):

    混入(mixin)提供了一种非常灵活的方式,来分发Vue组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

    如何理解mixins?我们可以将mixins理解成一个数组,数组中有单或多个mixin,mixin的本质就是一个js对象,它可以有data、created、methods等等vue实例中拥有的所有属性,甚至可以在mixins中再次嵌套mixins。

    (2)mixin特点

    1.选项合并

    官网解释(Vue2.x)

    当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行‘合并’。
    比如,数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>学习mixins的简单使用</title>    <script type="text/javascript" src="../js/vue.js"></script></head><body>    <div class="my-app">{{message}}</div>    <script type="text/javascript">        const myMixin = {            data() {                return {                    message: 'this is mixin message'                }            },            created() {                console.log('mixin created')            }        }        new Vue({            el: ".my-app",            mixins: [myMixin],            data() {                return {                    message: '简单的vue'                }            },            created() {                console.log(this.message)            }        })    </script></body></html>

    界面:

    Vue中mixins的使用方法及实际项目应用是什么

    mixins与Vue instance合并时,会将created等钩子函数合并成数组,mixins的钩子优先调用,当data、methods对象健值冲突时,以组件优先

    同名钩子函数将合并为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。

    值为对象的选项,例如 methods、components 和 directives,将被合并为同一个对象。两个对象键名冲突时,取组件对象的键值对。

    2.方法和参数在各组件中不共享

    简述:对于一个混合对象而言,如果在不同的组件中(以组件1和组件2为例)使用数据,如果组件1对mixin中的值改变,不会影响组件2中引用的mixin的data。

    例子:

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>学习mixins的简单使用(1)</title>    <script type="text/javascript" src="../js/vue.js"></script></head><body>    <div class="my-app">{{message}}</div>    <div class="my-app1">{{message}}</div>    <script type="text/javascript">        const myMixin = {            data() {                return {                    message: 'this is mixin message',                    age: '18',                }            },            created() {                console.log('mixin created')            }        }        new Vue({            el: ".my-app",            mixins: [myMixin],            data() {                return {                    message: '简单的vue'                }            },            created() {                this.age++;                console.log('第一次引用mixin——————' + this.age)//19            }        })        new Vue({            el: ".my-app1",            mixins: [myMixin],            data() {                return {                    message: '简单的vue'                }            },            created() {                console.log(this.message)                console.log('第二次引用mixin——————' + this.age)//18            }        })    </script></body></html>

    Vue中mixins的使用方法及实际项目应用是什么

    (3)mixin与vuex的区别

    vuex:
    状态管理
    里面定义的变量在每个组件中均可以进行使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随之改变。

    mixins:
    可以定义共用的变量
    在每个组件中使用,引入组件之后,各个变量是相互独立的,值的修改在组件中不会相互影响

    (4)mixin与公共组件的区别

    组件 :在父组件中引入组件,相当于在父组件中给出独立的一片空间来供子组件使用,父子组件中根据props和$emit来互相传值,实际上两者是相互独立的

    mixins:在引入组件之后与组件中的对象与方法进行合并,相当于扩展了父组件中的对象和方法,形成了一个新的组件。

    (5)项目实践

    在vue项目中使用element-ui时,比如在使用Table表格的时候,免不了申明tableData、total、pageSize等一些Table表格、Pagination分页需要的参数。

    可以将重复的data和methods写入一个tableMixin中。

    export default {  data() {    return {      total: 0,      pageNo: 1,      pageSize: 10,      tableData: [],      loading: false    }  },  created() {    this.searchData()  },  methods: {    // 预申明,防止报错    searchData() {},    handleSizeChange(size) {      this.pageSize = size      this.searchData()    },    handleCurrentChange(page) {      this.pageNo = page      this.searchData()    },    handleSearchData() {      this.pageNo = 1      this.searchData()    }  }}

    当需要的时候直接引入即可

    import tableMixin from './tableMixin'export default {  ...//引入mixins  mixins: [tableMixin],  methods: {    searchData() {      ...    }  }}

    我们在组件内会重新申明serchData方法,类似这种methods对象形式的key,如果key相同,组件内的key会覆盖tableMixin中的key。
    当然我们还可以在mixins嵌套mixins。

    (6)总结

    注意一下 vue 中 mixins 的优先级,component > mixins > extends。

    我们暂且将 mixins 称作是组件模块化,灵活运用组件模块化,可以将组件内的重复代码提取出来,实现代码复用,也使我们的代码更加清晰,效率也大大提高。

    附:mixins和普通情况下引入组件有什么区别?

    组件在引用之后相当于在父组件内开辟了一块单独的空间,来根据父组件props过来的值进行相应的操作,单本质上两者还是泾渭分明,相对独立。
    而mixins则是在引入组件之后,则是将组件内部的内容如data等方法、method等属性与父组件相应内容进行合并。相当于在引入后,父组件的各种属性方法都被扩充了。

    mixins的一些特性

    1. mixins中的生命周期会与引入mixins的组件的生命周期整合在一起调用

    2. 值为对象的选项, 组件的data、methods、filters会覆盖mixins里的同名data、methods、filters
      如methods,components等,选项会被合并,键冲突的组件会覆盖混入对象的,比如混入对象里有个方法A,组件里也有方法A,这时候在组件里调用的话,执行的是组件里的A方法

    3. 值为函数的选项,不同mixin里的同名方法,按照引进的顺序,最后的覆盖前面的同名方法
      如created,mounted等,就会被合并调用,混合对象里的钩子函数在组件里的钩子函数之前调用,同一个钩子函数里,会先执行混入对象的东西,再执行本组件的

    4. 方法和参数在各组件中不共享
      如混入对象中有一个 cont:1的变量,在组件A中改变cont值为5,这时候在组件B中获取这个值,拿到的还是1,还是混入对象里的初始值,数据不共享

    5. 与vuex的区别
      vuex:用来做状态管理的,里面定义的变量在每个组件中均可以使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随之修改
      mixins:可以定义共用的变量,在每个组件中使用,引入组件中之后,各个变量是相互独立的,值的修改在组件中不会相互影响

    6. 与公共组件的区别
      组件:在父组件中引入组件,相当于在父组件中给出一片独立的空间供子组件使用,然后根据props来传值,但本质上两者是相对独立的

    关于“Vue中mixins的使用方法及实际项目应用是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Vue中mixins的使用方法及实际项目应用是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

    --结束END--

    本文标题: Vue中mixins的使用方法及实际项目应用是什么

    本文链接: https://www.lsjlt.com/news/353896.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Vue中mixins的使用方法及实际项目应用是什么
      这篇文章主要介绍了Vue中mixins的使用方法及实际项目应用是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue中mixins的使用方法及实际项目应用是什么文章都会有所收获,下面我们一起来看看吧。(1)...
      99+
      2023-07-05
    • vue中的mixins混入使用方法
      目录mixinsmixins理解使用方法全局混入局部混入mixins的使用方法的复用方法的覆盖合并生命周期mixins 混合 (mixins) 是一种分发 Vue 组件中可复用功能的...
      99+
      2024-04-02
    • vue中混入mixins的使用方法
      目录前言使用方法总结前言 Vue中有一个设置项叫做混入 (mixins), 它的使用是用来做代码复用的。同时, 这个mixins 也分为局部混入和全局混入 vue中的解释是这样的,如...
      99+
      2024-04-02
    • MVVMLight项目的绑定及使用方法是什么
      这篇文章主要介绍“MVVMLight项目的绑定及使用方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MVVMLight项目的绑定及使用方法是什么”文章能帮助大家解决问题。一、绑定: ...
      99+
      2023-06-29
    • vue-cli是什么及创建vue-cli项目的方法
      目录1.什么是 vue-cli2.安装 vue-cli3.解决 Windows PowerShell 不识别 vue 命令的问题4.创建项目 vue-cli4.1 基于 vue ui...
      99+
      2023-05-16
      vue-cl创建项目 vue-cl是什么
    • vue项目中使用TDesign的方法
      目录前言:一、使用vue-cli手脚架创建vue项目二、配置vue及vue模板编译器版本三、安装tdesign-vue和less四、测试常见错误前言: 本文只介绍如何在vue项目中配...
      99+
      2023-05-15
      vue使用TDesign vue TDesign
    • vue中mixins属性的作用是什么
      本篇文章给大家分享的是有关vue中mixins属性的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。mixin.js 文件import...
      99+
      2024-04-02
    • vue3项目中keepAlive的使用方法是什么
      vue3项目中keepAlive的使用方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。keepalive是Vue的内置组件,作用是将组件缓存在内存当中,...
      99+
      2023-06-22
    • Golang协程在实际项目中的应用
      golang协程通过goroutine实现并发执行:创建协程:使用goroutine关键词创建协程,其本质是共享内存的执行函数。并发处理请求:在分布式文件系统中,使用协程并行处理来自多个...
      99+
      2024-04-15
      golang 协程 并发请求
    • 如何将 LeetCode 算法应用到实际的 PHP 项目中?
      LeetCode是一个非常流行的算法学习平台,它提供了大量的算法题目和答案,让人们可以在实践中学习算法。但是,很多人可能会认为这些算法只适用于理论学习,而不是实际应用。其实,并不是这样的。在实际的PHP项目中,我们也可以使用LeetCode...
      99+
      2023-09-14
      leetcode numpy api
    • vue项目中使用骨架屏的方法
      现在的应用开发,基本上都是前后端分离的,前端主流框架有SPA、MPA等,那么解决页面渲染、白屏时间成为首要关注的点 webpack可以按需加载,减小首屏需要加载代码的体积; 使用CD...
      99+
      2024-04-02
    • vue中this.$emit使用方法的实际案例
      目录需求:1新增页面2 新增页面中点击关联项目弹出的页面3实现效果总结this.$emit()主要用于子组件向父组件传值。 下面就给大家举一个实际开发中使用到的案例。 需求: 点击关...
      99+
      2023-02-10
      vue this.$emit作用 vue this.$emit
    • PHP 防抖技术的优势及其在实际项目中的应用
      随着移动互联网的快速发展,用户对于web应用程序的要求也越来越高。随着用户在web应用程序中的操作频繁增加,前端错误的增加也是不可避免的。这导致程序的连续,重复的请求,从而占用系统资源,降低程序的性能和响应速度。为了解决这个问题,我将会介绍...
      99+
      2023-10-21
      PHP 实际应用 防抖技术
    • vue项目中main.js使用方法详解
      目录第一部分:main.js文件解析第二部分:Vue.use的作用以及什么时候使用Vue.use是什么?(官方文档)Vue.use()什么时候使用?补充:关于main.js方便小技巧...
      99+
      2024-04-02
    • Go语言在实际项目中的应用探讨
      Go语言在实际项目中的应用探讨 近年来,Go语言因其并发性能优秀、语法简洁等特点,逐渐受到了越来越多开发者的青睐。越来越多的公司和项目开始选择使用Go语言来进行开发。那么,Go语言在实...
      99+
      2024-04-02
    • vue自定义封装指令及实际使用的方法
      本篇内容主要讲解“vue自定义封装指令及实际使用的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue自定义封装指令及实际使用的方法”吧!前言vue默认内置了v-model、v-if、v-s...
      99+
      2023-06-29
    • Ubuntu部署vue项目的方法是什么
      这篇文章主要介绍了Ubuntu部署vue项目的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Ubuntu部署vue项目的方法是什么文章都会有所收获,下面我们一起来看看吧。1.安装nginx。2.在vu...
      99+
      2023-07-04
    • Python Django项目和应用的创建方法是什么
      这篇文章主要介绍“Python Django项目和应用的创建方法是什么”,在日常操作中,相信很多人在Python Django项目和应用的创建方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
      99+
      2023-06-21
    • 【业界前沿】VUE 计算属性在实际项目中的最新应用
      1. 跟踪已完成的任务数 计算属性可用于跟踪已完成的任务数,这在待办事项列表或项目管理应用程序中很有用。例如: computed: { completedCount() { return this.todoList.filt...
      99+
      2024-02-20
      Vue 计算属性 动态数据 派生值 响应式计算
    • spring项目中切面及AOP的使用方法
      使用AOP的原因(AOP简介) 我们知道,spring两大核心,IOC(控制反转)和AOP(切面),那为什么要使用AOP,AOP是什么呢,严格来说,AOP是一种编程规范,是一种编程思...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作