vue2高级

1.bus传参

 利用vue空实例实现跨页面传参方式

var bus = new Vue();
bus.$on("colorchange",e=>{})
bus.$emit("colorchange",'red')
bus.$off("移除监听")

2.跨组件传参的常用方法

1.bus传参

2.$parent父组件

3.$root根组件

4.$refs.myref dom引用

5.vuex

6.cookie/localStorage/sessionStorage

3.v-model

1.是语法糖,简写模式

:value="w" @input="w=$event"
v=model="w"

2.在组件中指定v-model

model:{
    prop:"num",
    event:"change"
}

4.nextTicker 数据更新

<template>
    <h1 id="myh">{{msg1}}</h1>
	<h1>{{msg2}}</h1>
</template>

<script>
    export default{
		data(){
			return{
				msg1:"早上好",
				msg2:"晚上好",
			}
		},
    methods:{
        getNew(){
				this.msg1="中午好";
				setTimeout(()=>{
					this.msg2 = document.getElementById("myh").innerText;
				},10)
				// 数据更新,等待dom也更新后执行this.$nextTick的回调函数
				this.$nextTick(()=>{
					this.msg2 = document.getElementById("myh").innerText;
				})
			}
        }
</script>

5.set视图强制更新

<template>
        <ul style="text-align: left;">
               <li v-for="(item,index) in list" :key="index">{{item}}</li>
        </ul>

</template>


<script>
data() {
            return {
                list:["天","天","向","上"]
            }
        },
        methods: {
            changeIt(){
                // 强制更新
                this.$set(this.list,3,"下")
                console.log(this.list)
                // vue双向绑定原理,数据更新,试图更新,试图更新,数据更新
                // 数据与视图桥梁是:所有的指令
                // 原理:通过object.definePropery劫持对象的getter获取,setter设置
                // 使用数组的更新,重写了数组的方法原型来实现.push pop split 
            }

}

</script>

6.混合

mixin作用: 多个组件可以共享数据和方法,在使用mixin的组件中引入后,mixin中的方法和属性也就并入到该组件中,可以直接使用。钩子函数会两个都被调用,mixin中的钩子首先执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值