vue3语法糖基本使用

// vue3中使用setup的语法糖
<script lang="ts" setup>
// 那么props,emit,attrs如何获取,按需引入
import { defineEmits, defineProps,useSlots, useAttrs,defineExpose,toRefs,toRef,ref,reactive,onMounted, onUpdated,computed,watch  } from "vue";
// defineProps接收参数
// defineEmits传参
// useSlots插槽
// useAttrs还没使用过
// defineExpose获取子页面的参数用法ref='ablout'
// toRefs接收一个对象作为参数,它会遍历对象身上的所有属性,然后挨个调用toRef执行
// toRef本质是引用是响应式数据与原始数据有关系,修改响应式数据是会影响到原始数据,修改通过toRef创建的响应式数据,不会触发UI界面的更新。toRef接收两个参数,第一个参数是哪个对象,第二个参数是对象的哪个属性
// ref本质是改变,页面会刷新,基本响应式数据,不会影响原数据,想拿到ref里面的数据需要属性.value
// reactive引用响应式数据
// onMounted的使用onMounted(() => { console.log("组件视图挂载完成") });
// onUpdated的使用onUpdated(() => { console.log("组件更新完成") });
//computed的使用computed(()=>{ return count.value* 2; })
// watch的使用watch(监听的对象, (v1, v2) => {
      // v1 是改变以后的新值
      // v2 是改变前的值
      console.log(v1, v2)
      // 要点:侦听普通函数可以获取修改前后的值,被侦听的数据必须是响应式的
    })

const emit = defineEmits(["change"]); // 声明触发事件 change
// 使用
const sonClick = () =>{
    emit('change' , props.foo)
}
// 获取传过来的值
const props = defineProps({ foo: String });   // 获取props
// 或者在父组件中通过ref='xxx’的方法来获取子组件实例,子组件使用了script setup语法糖,则子组件的数据需要用defineExpose 的方式导出,否则不会暴露属性。
import { ref ,defineExpose} from "vue";
// 用法
defineExpose({ 变量名 })
// 组件内守卫
		beforeRouteEnter:(to,form,next)=>{
			//to 到哪里去
			//form 从哪里来
			next( vm => {
				vm.data.routerIndex = form.name;
			})
		},
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值