• vue当中的mixin混入、插件使用


    1.mixin混入

    mixin混入的主要功能就是将一个众多组件公用的代码片段进行编辑使用,分局部混入和全局混入

    看下列示例代码即明白一切

    局部混入:

    src/mixin.js:

    1. export const mixin = {
    2. methods: {
    3. showName() {
    4. alert(this.name)
    5. }
    6. },
    7. mounted() {
    8. console.log("你好呀~")
    9. }
    10. }

    src/components/School.vue:

    1. <template>
    2. <div>
    3. <h2 @click="showName">学校姓名:{{name}}</h2>
    4. <h2>学校地址:{{address}}</h2>
    5. </div>
    6. </template>
    7. <script>
    8. //引入混入
    9. import {mixin} from '../mixin'
    10. export default {
    11. name:'School',
    12. data() {
    13. return {
    14. name:'尚硅谷',
    15. address:'北京'
    16. }
    17. },
    18. mixins:[mixin]
    19. }
    20. </script>

    src/components/Student.vue:

    1. <template>
    2. <div>
    3. <h2 @click="showName">学生姓名:{{name}}</h2>
    4. <h2>学生性别:{{sex}}</h2>
    5. </div>
    6. </template>
    7. <script>
    8. //引入混入
    9. import {mixin} from '../mixin'
    10. export default {
    11. name:'Student',
    12. data() {
    13. return {
    14. name:'JOJO',
    15. sex:'男'
    16. }
    17. },
    18. mixins:[mixin]
    19. }
    20. </script>

    src/App.vue:

    1. <template>
    2. <div>
    3. <School/>
    4. <hr/>
    5. <Student/>
    6. </div>
    7. </template>
    8. <script>
    9. import Student from './components/Student.vue'
    10. import School from './components/School.vue'
    11. export default {
    12. name:'App',
    13. components: { Student,School },
    14. }
    15. </script>

    这样子就实现了将多个组件公用代码片段的混入功能

    全局混入:

    src/main.js:

    1. import Vue from 'vue'
    2. import App from './App.vue'
    3. import {mixin} from './mixin'
    4. Vue.config.productionTip = false
    5. Vue.mixin(mixin)
    6. new Vue({
    7. el:"#app",
    8. render: h => h(App)
    9. })

    效果图:

     

    2.plugins插件

    什么都别说,先来看看示例代码

    先定义插件

    src/plugin.js:

    1. export default {
    2. install(Vue,x,y,z){
    3. console.log(x,y,z)
    4. //全局过滤器
    5. Vue.filter('mySlice',function(value){
    6. return value.slice(0,4)
    7. })
    8. //定义混入
    9. Vue.mixin({
    10. data() {
    11. return {
    12. x:100,
    13. y:200
    14. }
    15. },
    16. })
    17. //给Vue原型上添加一个方法(vm和vc就都能用了)
    18. Vue.prototype.hello = ()=>{alert('你好啊')}
    19. }
    20. }

    src/main.js:

    1. import Vue from 'vue'
    2. import App from './App.vue'
    3. import plugin from './plugin'
    4. Vue.config.productionTip = false
    5. //在这里就是要记住使用插件的方法就是Vue.use()
    6. Vue.use(plugin,1,2,3)
    7. new Vue({
    8. el:"#app",
    9. render: h => h(App)
    10. })

    src/components/School.vue:(使用插件当中的过滤方法)

    1. <template>
    2. <div>
    3. <h2>学校姓名:{{name | mySlice}}</h2>
    4. <h2>学校地址:{{address}}</h2>
    5. </div>
    6. </template>
    7. <script>
    8. export default {
    9. name:'School',
    10. data() {
    11. return {
    12. name:'尚硅谷atguigu',
    13. address:'北京'
    14. }
    15. }
    16. }
    17. </script>

    src/components/Student.vue:(使用插件当中的原型方法this.hello())

    1. <template>
    2. <div>
    3. <h2>学生姓名:{{name}}</h2>
    4. <h2>学生性别:{{sex}}</h2>
    5. <button @click="test">点我测试hello方法</button>
    6. </div>
    7. </template>
    8. <script>
    9. export default {
    10. name:'Student',
    11. data() {
    12. return {
    13. name:'JOJO',
    14. sex:'男'
    15. }
    16. },
    17. methods:{
    18. test() {
    19. this.hello()
    20. }
    21. }
    22. }
    23. </script>

    代码示例图解:

     plugins插件详解:

    插件:

    1. 功能:用于增强Vue

    2. 本质:包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据

    3. 定义插件:

      1. plugin.install = function (Vue, options) {
      2. // 1. 添加全局过滤器
      3. Vue.filter(....)
      4. // 2. 添加全局指令
      5. Vue.directive(....)
      6. // 3. 配置全局混入
      7. Vue.mixin(....)
      8. // 4. 添加实例方法
      9. Vue.prototype.$myMethod = function () {...}
      10. Vue.prototype.$myProperty = xxxx
      11. }

             

           4.使用插件:Vue.use(plugin)

  • 相关阅读:
    One way 和two way ANOVA分析的区别是啥,以及如何使用SPSS或者prism进行统计分析
    2024年申报国自然项目基金撰写及技巧
    基于粒子群优化算法在配电系统中优化电容器的配置以降低损耗(Matlab代码实现)
    Linux学习-74-NTFS文件系统安装教程
    springboot+爱心捐赠小程序 毕业设计-附源码211711
    二叉搜索树
    /usr/bin/curl: Argument list too long
    设计模式(工厂方法-Factory Method)结构|原理|优缺点|场景|示例
    优化隔离级别以扩展分布式数据库
    TheGraph 教程
  • 原文地址:https://blog.csdn.net/m0_68997646/article/details/127692421