提示 Vue3.2 版本开始才能使用语法糖! vue3的全新API中,有部分在vue2的基础上沿用了 setup 的简单介绍 起初 Vue3.0 暴露变量必须 return 出来,template中才能使用; 这样会导致在页面上变量会出现很多次,很不友好。 vue3.2只需在script标签中添加setup。 可以帮助我们解决这个问题。 组件只需引入不用注册,属性和方法也不用返回, 也不用写setup函数,也不用写export default , 甚至是自定义指令也可以在我们的template中自动获得。 响应式:核心 响应式:工具函数 生命周期钩子 如何使用setup语法糖只需在 script 标签上写上setup 代码如下(示例): data数据的使用由于 setup 不需写 return,所以直接声明数据即可 代码如下(示例): method方法的使用 代码如下(示例): watchEffect的用法 代码如下(示例): watch的用法 代码如下(示例): computed计算属性的使用computed计算属性有两种写法(简写和考虑读写的完整写法) 代码如下(示例): props父子传值的使用不需要使用setup函数,机智的小伙伴会说: 那么子组件怎么接受父组件传递过来的值呢? props,emit怎么获取呢? 别担心,新的api出现了,我们的主角 defineProps代码如下(示例): {{props.name}} 父组件代码如下(示例):emit子父传值的使用子组件怎么向父组件抛出事件?defineEmits的到来! 代码如下(示例): 确定 父组件代码如下(示例): 获取子组件ref变量和defineExpose暴露即vue2中的获取子组件的ref,直接在父组件中控制子组件方法和变量的方法 代码如下(示例): {{data }}
父组件代码如下(示例):路由useRoute和useRouter的使用 代码如下(示例): store仓库的使用 代码如下(示例): await的支持setup 语法糖中可直接使用 await,不需要写 async , setup 会自动变成 async setup 代码如下(示例): provide 和 inject 祖孙传值父组件代码如下(示例): 子组件代码如下(示例): 新增指令 v-memov-memod会记住一个模板的子树,元素和组件上都可以使用。 该指令接收一个固定长度的数组作为依赖值进行[记忆比对]。 如果数组中的每个值都和上次渲染的时候相同,则整个子树的更新会被跳过。 即使是虚拟 DOM 的 VNode 创建也将被跳过,因为子树的记忆副本可以被重用。 因此渲染的速度会非常的快。 需要注意得是:正确地声明记忆数组是很重要。 开发者有责任指定正确的依赖数组,以避免必要的更新被跳过。