一,watch用法

基础用法

  watch: {// 每当 question 改变时,这个函数就会执行question(newQuestion, oldQuestion) {if (newQuestion.includes('?')) {this.getAnswer()}}},

watch 选项也支持把键设置成用 . 分隔的路径:

export default {watch: {// 注意:只能是简单的路径,不支持表达式。'some.nested.key'(newValue) {// ...}}
}

深层侦听器#
watch 默认是浅层的:被侦听的属性,仅在被赋新值时,才会触发回调函数——而嵌套属性的变化不会触发。如果想侦听所有嵌套的变更,你需要深层侦听器:

export default {watch: {someObject: {handler(newValue, oldValue) {// 注意:在嵌套的变更中,// 只要没有替换对象本身,// 那么这里的 `newValue` 和 `oldValue` 相同},deep: true}}
}
谨慎使用深度侦听需要遍历被侦听对象中的所有嵌套的属性,当用于大型数据结构时,开销很大。因此请只在必要时才使用它,并且要留意性能。

即时回调的侦听器#
watch 默认是懒执行的:仅当数据源变化时,才会执行回调。但在某些场景中,我们希望在创建侦听器时,立即执行一遍回调。举例来说,我们想请求一些初始数据,然后在相关状态更改时重新请求数据。

我们可以用一个对象来声明侦听器,这个对象有 handler 方法和 immediate: true 选项,这样便能强制回调函数立即执行:

export default {// ...watch: {question: {handler(newQuestion) {// 在组件实例创建时会立即调用},// 强制立即执行回调immediate: true}}// ...
}

watch更多官网
官网watch

二,props用法

props使用字符串数组来声明

export default {props: ['foo'],created() {// props 会暴露到 `this` 上console.log(this.foo)}
}

ssprops使用对象来声明

export default {props: {title: String,likes: Number}
}

Prop 校验#
Vue 组件可以更细致地声明对传入的 props 的校验要求。比如我们上面已经看到过的类型声明,如果传入的值不满足类型要求,Vue 会在浏览器控制台中抛出警告来提醒使用者。这在开发给其他开发者使用的组件时非常有用。

要声明对 props 的校验,你可以向 props 选项提供一个带有 props 校验选项的对象,例如:

export default {props: {// 基础类型检查//(给出 `null` 和 `undefined` 值则会跳过任何类型检查)propA: Number,// 多种可能的类型propB: [String, Number],// 必传,且为 String 类型propC: {type: String,required: true},// Number 类型的默认值propD: {type: Number,default: 100},// 对象类型的默认值propE: {type: Object,// 对象或者数组应当用工厂函数返回。// 工厂函数会收到组件所接收的原始 props// 作为参数default(rawProps) {return { message: 'hello' }}},// 自定义类型校验函数propF: {validator(value) {// The value must match one of these stringsreturn ['success', 'warning', 'danger'].includes(value)}},// 函数类型的默认值propG: {type: Function,// 不像对象或数组的默认,这不是一个工厂函数。这会是一个用来作为默认值的函数default() {return 'Default function'}}}
}

props更多官网
官网props

watch和props用法相关推荐

  1. Jmeter 的 vars 和 props 用法

    Jmeter 的 JSR223 控件是 代替 BeanShell 的新一代脚本控件,支持多种脚本语言,尤其是其中的 Groovy,更是重点推荐使用的脚本语言,本文研究其中的 vars 和 props ...

  2. Vue props用法详解

    父子组件 比如我们需要创建两个组件 Test(父组件) 和 Cmpone(子组件),现在我们要实现从Test组件向Cmpone组件传递数据.父组件向子组件传递数据分为两种方式:动态和静态 静态prop ...

  3. Vue中props用法

    ​ 在Vue中通过props,可以将原本孤立的组件串联起来,也就是可以子组件可以接收父组件传递过来的data,比如子组件想要引用父组件的数据,那么在props里面声明一个变量,这个变量就可以引用父元素 ...

  4. 【前端面试题之Vue篇】(1)父子组件通信方式Props/$emit

    文章目录 前言 一.父组件向子组件传值 1.Props定义 2. Props 用法 (1)路由里注册父子组件 (2)父组件里引入子组件,并且注册子组件 (3)子组件利用props接受父组件传过来的值 ...

  5. React props

    一.props用法 来源 组件的属性可以接受任意值,字符串.对象.函数等等都可以.有时,我们需要一种机制,验证别人使用组件时,提供的参数是否符合要求. 1.PropTypes 组件类的PropType ...

  6. 带你从Vue入门到进阶

    系统学习前端Vue框架,笔记记录于B站的why老师,具体视频链接,在此感谢老师的悉心授课.我的github笔记地址 欢迎访问我的博客 My Blog: https://coderblue.cn/ Gi ...

  7. Python黑马头条推荐系统第一天 架构介绍和离线计算更新Item画像

    Python黑马头条推荐系统项目课程定位.目标 定位 课程是机器学习(包含推荐算法)算法原理在推荐系统的实践 深入推荐系统的业务流场景.工具使用 作为人工智能的数据挖掘(推荐系统)方向应用项目 目标 ...

  8. java NumberPad实现_旺财记账项目-Money.vue组件实现(下)

    1. 实现TypeScript的Vue组件. 以Types组件为例改写 JS写法 @click="selectType('-')">支出 @click="selec ...

  9. 父子组件通信-父传子

    在开发中,往往一些数据确实需要从上层传递到下层: 比如在一个页面中,我们从服务器请求到了很多的数据. 其中一部分数据,并非是我们整个页面的大组件来展示的,而是需要下面的子组件进行展示. 这个时候,并不 ...

最新文章

  1. 图灵2010.03书讯
  2. 分享Kali Linux 2017年第29周镜像文件
  3. 原来程序员在某个圈子还是蛮吃香的嘛~
  4. lower_bound和 upper_bound 用法(STL)
  5. CentOS7安装配置redis5.0.5
  6. 低延时直播与RTC融合架构设计③:RTC融合架构设计
  7. 搜索引擎和知识图谱那些事 (上).基础篇
  8. Android 网络异常
  9. 几大主流国产浏览器统一屏蔽996.ICU!
  10. sublime 插件安装;sublime的 babel、sublime-jsfmt插件
  11. Extensions in UWP Community Toolkit - ViewExtensions
  12. 《Hadoop MapReduce实战手册》一1.10 使用MapReduce监控UI
  13. python机器学习库sklearn——DBSCAN密度聚类
  14. [转载] python数据类型转换
  15. keepalived高可用配置注意事项
  16. Liunx 常用命令
  17. 系统集成项目管理工程师10《项目干系人管理》
  18. 网易UI测试工具 Airtest
  19. 基于物理-虚拟协同图网络的客流预测
  20. 硬件系统工程师宝典(3)-----信号完整性分析是个啥?

热门文章

  1. 原代成骨细胞培养方法
  2. python简单实现pdf拼接
  3. HP的测试数据解决方案 - Test Data Management
  4. c语言常用的代码,初学C语言常用简单程序代码;
  5. 微信小程序自定义导航栏机型适配--底部Tabbar--view高度--底部按钮适配
  6. nginx 的基本使用详解
  7. 数字证书制作 pvk cer spc cab
  8. 基于stm32硬件IIC的oled显示
  9. Android GPS学习 (二) :GPS 服务启动以及初始化流程
  10. 在6818开发板上显示bmp图片的基本步骤