目录1.setup使用2.生命周期函数3.Vuex4.toRef介绍5.ref介绍6.组件传值7.shallowRef和shallowReactive8.watchEffect9.w
vue2开发缺点和vue3开发优点
setup(){
console.log('自动执行')
const name = '林一'
const age = 20
const company = '阿里巴巴'
const btn = ()=>{
const res = `我叫${name},今年${age}岁了,在${company}上班`
console.log(res)
}
// 计算属性
// 侦听器
return {name,btn}
}
Vue应用程序中有4个主要事件
import { onBeforeMount, ....... } from 'vue'
//安装
npm install vuex@next --save
//引入
import {useStore} from 'vuex'
import {toRef} from 'vue'
//toRef接收两个参数,第一个参数是要操作的对象,第二个参数是对象的某个属性
const obj = {name:'林一'}
toRef(obj,'name')
setup(){
const obj = {name:'林一',age:40}
// const res = ref(obj.name)
const res = toRef(obj,'name')
const btn = ()=>{
res.value = '林二'
console.log(res)
console.log(obj)
}
return {res,btn}
}
import {ref} from 'vue'//组合式api
ref('林一')
setup(){
const name = ref('林一')
const age = ref(52)
const company = ref('阿里巴巴')
// 对象类型
const obj = ref({
taobao:'淘宝',
tamll:'天猫'
})
// 数组类型
const arr = ref([
{
xiami:'林二',
huabei:'京东'
}
])
const btn = ()=>{
// 响应对象类型
// name.value = '林三'
// obj.value.taobao = '淘宝000'
// console.log(obj)
// 响应数组类型
arr.value[0].xiami = '京东000'
console.log(arr)
}
return {name,age,company,btn,obj,arr}
}
//第一种:进入页面即刻传值(祖孙传值)
const p1 = reactive({name:'林一',age:52})
provide('p',p1)//祖传
const res = inject('p')//孙收
//第二种:点击传值
<Vue ref="val"/>//引入子组件,使用ref调用该子组件
const val = ref()
const p1 = reactive({name:'林一',age:52})
function btn(){
val.value.receive(p1)
}
import { shallowReactive,shallowRef } from 'vue'
setup() {
//shallowReactive:只处理第一层的数据
const p1 = shallowReactive({
name:'林一',
product:{
taobao:5
}
})
// shallowRef:只处理基本类型数据
const p2 = shallowRef({
val:1
})
console.log(p2)
return{...toRefs(p1),p2}
},
import { watchEffect } from 'vue'
setup() {
const p1 = ref(0)
const p2 = ref(1)
const p3 = reactive({
name:'林一',
age:50,
product:{
wx:14
}
})
const S = watchEffect(()=>{
const a = p1.value
const b = p2.value
console.log('进入页面我就执行')
})
S()//停止监听
return {p1,p2,p3}
},
import { watch } from 'vue'
setup() {
const p1 = ref(0)
const p2 = ref(1)
const p3 = reactive({
name:'林一',
age:50,
product:{
wx:14
}
})
// 一:侦听ref的基本数据
// watch(p1,(newVal,oldVal)=>{
// console.log(newVal,oldVal)
// },{immediate:true})//{immediate:true}立即侦听
// 二:侦听多个ref响应数据
// watch([p1,p2],(newVal,oldVal)=>{
// console.log(newVal,oldVal)
// })
// 三:侦听整个reactive定义的数据:只能监听到最新的结果,之前的结果监听不到
// watch(p3,(newVal,oldVal)=>{
// console.log(newVal,oldVal)
// })
// 四:侦听reactive定义的数据中的某一个值:可以监听到,无论层级有多深
watch(()=>p3.product.wx,(newVal,oldVal)=>{
console.log(newVal,oldVal)
})
return {p1,p2,p3}
},
import { computed } from 'vue'
setup() {
const mayun = ''
const huateng = ''
const res = reactive({linyi,liner})
// 计算年龄总和
const sum = computed({
get(){
return res.linyi + res.liner
},
set(val){
console.log(val)
}
})
return {...toRefs(res),sum}
}
import { reactive } from 'vue'
reactive({name:'林一'})
setup(){
// const name = reactive({name:'林一'})
// const age = reactive({age:20})
// const company = reactive({company:'阿里巴巴'})
// // 深层次响应式
// const pro = reactive({
// a:'淘宝',
// b:'天猫',
// c:{
// d:'京东',
// e:'顺丰'
// }
// })
const btn = ()=>{
// name.name = '林二'
// age.age = 40
// pro.c.d = '京东0000'
res.name = '林三'
}
// 共用一个reactive
const name = '林四'
const age = 52
const company = '阿里巴巴'
const res = reactive({name,age,company})
return {res,btn}
}
import {toRefs} from 'vue'
toRefs(obj)
setup(){
const obj = {name:'林一',age:40}
const refs = reactive(obj)
// const res = toRefs(refs)
const btn = ()=>{
// res.name.value = '林三'
// console.log(res)
console.log(refs)
refs.name = '林二'
console.log(refs)
console.log(obj)
}
return {...toRefs(refs),btn}
}
到此这篇关于vue3.0组合式api的使用小结的文章就介绍到这了,更多相关vue3组合式api使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: vue3.0组合式api的使用小结
本文链接: https://lsjlt.com/news/171893.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0