Vue3笔记
ref用来操作基本数据类型,不会影响到元数据,但是会更新视图层
console.log(1233);
const msg = 'hello Vue'
const num = ref(0)
const add = ()=>{
num.value++
}
return {msg,num,add}
reactive用来操作引用数据类型,不能操作基本数据类型
const obj = reactive({
name:'小明',
age:18,
})
const btn = ()=>{
obj.name = '小红'
}
return {obj,btn}
const obj = reactive({
name:'小明',
age:18,
arr:[{xxx:999}]
})
const btn = ()=>{
obj.name = '小红'
obj.arr[0].xxx = '****999'
}
return {obj,btn}
toRef会影响到元数据,但是不会跟小新视图层
toRefs
const obj = {name:'小明',age:18,a:1,b:2,c:3}
const res = reactive(obj)
return{...toRefs(res)}
<h1>{{name}}</h1>
<h2>{{age}}</h2>
<p>{{a}} {{b}} {{c}}</p>
计算属性computed
const mayun = ''
const mahua = ''
const obj = reactive({mahua,mayun})
const sum = computed(()=>{
return obj.mahua + obj.mayun
})
return {...toRefs(obj),sum}
侦听器 watch
const num = ref(0)
const num2 = ref(1)
watch([num,num2],(newVal,oldVal)=>{
console.log(newVal,oldVal)
})
return {num,num2}
const obj = reactive({name:'小明',num:10})
watch(()=>obj.num,(newVal,oldVal)=>{
console.log(newVal,oldVal);
})
return{obj}
}
const obj = reactive({name:'小明',num:10})
watch(obj,(newVal,oldVal)=>{
console.log(newVal,oldVal);
})
return{obj}
}
组件传值
setup(){
const obj = reactive({name:'码云',age:12})
provide('name',obj)
return {obj}
}
setup(){
console.log(111);
const obj = inject('name')
return{obj}
}
安装 element-plus
npm install element-plus --save