Vue2高级

bus传参

  • 利用vue空实例实现跨页面跨组件传参方式
  • var bus = new Vue()
  • bus.$on(“colorchange”,e=>{})
  • bus.$emit(“colorchange”.‘red’)
  • bus.$off(“移除监听”)
import bus from '@/utils/bus.js'
export default {
		data() {
			return {
				bg: "yellow"
			}
		},
		created() {
			// 监听colorchange事件,动态改变bg
			bus.$on("colorchange", $event => {
				this.bg = $event
			})
		}
	}

跨组件监听

  • $parent 父组件
  • $root 根组件
  • $refs.myref dom引用
  • vuex
  • cookie/localStorage/sessionStorage
  • bus传参

v-model

  • 是语法,简写模式
    :value=“w” @input=“w=$event”
    v-model=“w”

  • 在组件中指定v-model
    model:{
    prop:“num”,
    event:“change”
    }

		<steper-view :value="w" @input="w=$event"></steper-view> <br>
		<steper-view v-model="w"></steper-view>
		<hr>
		<steper-view2 :num="w" @change="w=$event"></steper-view2> <br>
		<steper-view2 v-model="w"></steper-view2>

nextTicker

  • 数据更新,等待dom更新执行回调函数
getNew(){
				this.msg1 = "不收回台湾,不改名!";
				// 更新数据,等待dom也更新后执行this.$nextTick的回调函数
				this.$nextTick(()=>{
					this.msg2 = document.getElementById("myh").innerText
				})
			}

vue双向绑定原理

  • 数据更新,视图更新,视图更新,数据更新
  • 数据和视图的桥梁是:vue指令
  • 原理:通过Object.definePropery 劫持对象的getter获取,setter设置
  • 实现数组的更新,重新数组的方法原型来执行,push,pop,split
  • vue3双向绑定,使用proxy代理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值