vue里面的Mixins(混合)

Mixins一般有种用途:
1、在你已经写好了构造器后,需要增加方法或者临时的活动时使用的方法,这时用混入会减少源代码的污染。
2、很多地方都会用到的公用方法,用混入的方法可以减少代码量,实现代码重用。
一、Mixins的基本用法
我们现在有个数字点击递增的程序,假设已经完成了,这时我们希望每次数据变化时都能够在控制台打印出提示:“数据发生变化”.
代码实现过程:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <title>Mixins Option Demo</title>
</head>
<body>
    <h1>Mixins Option Demo</h1>
    <hr>
    <div id="app">
        <p>num:{{ num }}</p>
        <P><button @click="add">增加数量</button></P>
    </div>

    <script type="text/javascript">
        //额外临时加入时,用于显示日志
        var addLog={
            updated:function(){
                console.log("数据放生变化,变化成"+this.num+".");
            }
        }
        var app=new Vue({
            el:‘#app‘,
            data:{
                num:1
            },
            methods:{
                add:function(){
                    this.num++;
                }
            },
            mixins:[addLog]//混入
        })
    </script>
</body>
</html>

二、mixins的调用顺序
从执行的先后顺序来说,都是混入的先执行,然后构造器里的再执行,需要注意的是,这并不是方法的覆盖,而是被执行了两边。
在上边的代码的构造器里我们也加入了updated的钩子函数:

updated:function(){
  console.log("构造器里的updated方法。")
}

  这时控制台输出的顺序是:
  mixins数据放生变化,变化成2
  构造器里的updated方法

  当混入方法和构造器的方法重名时,混入的方法无法展现,也就是不起作用。

三、全局API混入方式
我们也可以定义全局的混入,这样在需要这段代码的地方直接引入js,就可以拥有这个功能了。我们来看一下全局混入的方法:

Vue.mixin({
    updated:function(){
       console.log(‘我是全局被混入的‘);
    }
})全局混入的执行顺序要前于混入和构造器里的方法

原文地址:https://www.cnblogs.com/lhl66/p/8271303.html

时间: 2024-10-08 10:48:37

vue里面的Mixins(混合)的相关文章

vue里面的get、post和jsonp

使用vue里面的get可以获取文件数据,当获取文件数据的使用的用法是 使用get获取php文件执行结果时就是在前面的案例的get方法中传入php文件,然后设置和php相对应的数据,如下 js代码 php代码 需要注意的是,php文件中,方括号里面的名称才是与js里面的名称一致,如图所示 post使用方法与get基本相似,就是在此基础上添加一个数据:emulateJSON: true 演示结果如下图所示 post方法的php代码 需要注意的是,粗看之下,连个php文件差异不大,但是php文件里面分

vue里面的v-for列表循环

列表渲染 v-for v-for可以把数据中的一个数组对应为一组元素v-for 指令需要以 item in items 形式的特殊语法, items 是源数据数组并且 item 是数组元素迭代的别名. <li v-for="item in items">{{item.text}}</li> data:{ items:[ {text:"第一组"}, {text:"第二组"}, {text:"第三组"},

vue里面的router-link 怎么改变其类样式

因为router-link里面有个默认的类样式 router-link-active(点谁就给谁添加),有时候我们利用别的插件,如果mui,然后里面也有类样式,我们需要使用mui的类样式,所以就得把router里面的默认样式给改变,所以就需要在router路由里面设置linkActiveClass:'mui-active' 2.呈现的效果就是,点谁谁变"蓝色" 原文地址:https://www.cnblogs.com/qiaokeli/p/8150713.html

vue里面的this指向

this.$http.jsonp(api).then(function(response){ console.log(response); console.log(this); this.list=response.body.result }, function(err){ console.log(err); }) 这里用箭头函数和不用箭头函数this都是指向同一个,都是vueconponent就是当前的组件 原文地址:https://www.cnblogs.com/fpcbk/p/108654

vue.js 2.x 版本script里面的dom被过滤,从而获取不到dom字符串的解决方案

做项目中 vue.js 在1.x版本切换的到2.x版本的时候遇到了一个问题就是说,1.x版本实例化之后 script 里面的dom 字符串不会被过滤掉,但是2.x版本之后就会被过滤例如: 1.x 版本被实例化之后的script 内容 2.x 版本被实例化之后的script 内容 这样我们在获取 id="sh" 内容的时候就无法获取到dom结构,很多时候我们想使用这些dom结构,怎么办呢? 于是乎,经过测试及文档的查看,考虑到了,那么如果还没被完全实例化之后,我们就去获取它,这样我们就能

vue render里面的nativeOn

vue render里面的nativeOn的解释官方的解释是:// 仅对于组件,用于监听原生事件,而不是组件内部使用 `vm.$emit` 触发的事件. 官方的解释比较抽象 个人理解: 仅用于组件这句话意思是:createElement()里面创建的不可以是原生html元素 而是组件,举例:createElement('p',{nativeOn:{click:function(){}}})这个时候nativeOn就没有意义,而createElement('组件名称',{nativeOn:{cli

读 vue 源码一 (为什么this.message能够访问data里面的message)

12月离职后,打算在年后再找工作了,最近陆陆续续的看了黄轶老师的vue源码解析,趁着还有几天过年时间记录一下. 目标:vue如何实现通过this.key,就能直接访问data,props,methods,里面的key. 源码:当我们在项目中new Vue实例后会执行Vue构造函数的_init方法,并执行一些混入 function Vue (options) { if (process.env.NODE_ENV !== 'production' && !(this instanceof Vu

vue中的mixins怎么用?

mixins基础概况 vue中的解释是这样的,如果觉得语言枯燥的可以自行跳过嘿~ 混入 (mixins): 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项. 怎么用? 举个栗子: 定义一个混入对象 image 把混入对象混入到当前的组件中 image 用法似不似相当简单呀 mixins的特点 1 方法和参数在各组件中不共享 混合对象中的参数num image 组件1中的参数num进行+1的操作

vue里操作DOM

一般来说你要在vue里操作DOM,要先在标签里加上ref="",如下: <h2 ref="s" @click="sss">Essential Links</h2> 然后在点击的事件sss写下你想要的效果代码:(注意的是上面的ref的s,要写在下面this.$refs,不要忘了) methods: { sss() { this.$refs.s.style.color = "blue"; } } 如果你想要