自学内容网 自学内容网

【vue2】12.进阶语法

目录

v-model 原理

表单类组件封装 & v-model 简化代码

表单类组件封装 & v-model 简化代码

.sync 修饰符

ref 和 $refs

Vue异步更新、$nextTick


v-model 原理

原理:v-model本质上是一个语法糖。例如应用在输入框上,就是 value属性input事件 的合写。

作用:提供数据的双向绑定

  • ① 数据变,视图跟着变 :value
  • ② 视图变,数据跟着变 @input

注意:$event 用于在模板中,获取事件的形参


表单类组件封装 & v-model 简化代码

1. 表单类组件 封装 → 实现 子组件 和 父组件数据 的双向绑定

  • ① 父传子:数据 应该是父组件 props 传递 过来的,拆解 v-model 绑定数据
  • ② 子传父:监听输入,子传父传值给父组件修改

表单类组件封装 & v-model 简化代码

2. 父组件 v-model 简化代码,实现 子组件父组件数据 双向绑定

  • ① 子组件中:props 通过 value 接收,事件触发 input
  • ② 父组件中:v-model 给组件直接绑数据

1. 表单类基础组件封装思路

  • ① 父传子:父组件动态传递 prop 数据,拆解v-model,绑定数据
  • ② 子传父:监听输入,子传父传值给父组件修改

本质:实现了实现 子组件 和 父组件数据 的双向绑定

2. v-model 简化代码的核心步骤

  • ① 子组件中:props 通过 value 接收,事件触发 input
  • ② 父组件中: v-model 给组件直接绑数据


 

.sync 修饰符

作用:可以实现 子组件 与 父组件数据 的 双向绑定,简化代码

特点:prop属性名,可以自定义,非固定为 value

场景:封装弹框类的基础组件, visible属性 true显示 false隐藏

本质:就是 :属性名@update:属性名 合写


ref 和 $refs

作用:利用 ref 和 $refs 可以用于 获取 dom 元素, 或 组件实例

特点:查找范围 → 当前组件内 (更精确稳定)

获取 dom

1. 目标标签 – 添加 ref 属性

2. 恰当时机, 通过 this.$refs.xxx, 获取目标标签

获取组件

1. 目标组件 – 添加 ref 属性

2. 恰当时机, 通过 this.$refs.xxx, 获取目标组件,

就可以调用组件对象里面的方法


Vue异步更新、$nextTick

需求:编辑标题, 编辑框自动聚焦

  1. 点击编辑,显示编辑框
  2. 让编辑框,立刻获取焦点

问题:"显示之后",立刻获取焦点是不能成功的!

原因:Vue 是 异步更新 DOM (提升性能)

$nextTick:等 DOM 更新后, 才会触发执行此方法里的函数体

语法: this.$nextTick(函数体)

  • 1. Vue是异步更新 DOM 的
  • 2. 想要在 DOM 更新完成之后做某件事,可以使用 $nextTick


原文地址:https://blog.csdn.net/2301_81051419/article/details/143672056

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!