vueAPI (data,props,methods,watch,computed,template,render)

data

  Vue 实例的数据对象。Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化。实例创建之后,可以通过vm.$data来访问原始数据对象

  为什么组件中的data是一个方法返回一个对象,而不是直接赋值给一个对象?

  因为组件可能被用来创建多个实例。如果 data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象!

props

  props 可以是数组对象,用于接收来自父组件的数据。props 可以是简单的数组,或者使用对象作为替代,对象允许配置高级选项,如类型检测、自定义验证和设置默认值。

type: String、Number、Boolean、Array、Object、Date、Function、Symbol。 会检查一个 prop 是否是给定的类型,否则抛出警告。

    • defaultany

      • 为该 prop 指定一个默认值。如果该 prop 没有被传入,则换做用这个值。对象或数组的默认值必须从一个工厂函数返回。
    • required: Boolean
      • 定义该 prop 是否是必填项。在非生产环境中,如果这个值为 truthy 且该 prop 没有被传入的,则一个控制台警告将会被抛出。
    • validator: Function
      • 自定义验证函数会将该 prop 的值作为唯一的参数代入。在非生产环境下,如果该函数返回一个 falsy 的值 (也就是验证失败),一个控制台警告将会被抛出。

methods

  methods 将被混入到 Vue 实例中。可以直接通过 VM 实例访问这些方法,或者在指令表达式中使用。方法中的 this 自动绑定为 Vue 实例。

  注意不应该使用箭头函数来定义methods函数,this指向不会按照期望指向Vue实例。

watch

  使用 watch 选项允许我们执行异步操作 (访问一个 API),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这些都是计算属性无法做到的。

    • deep: true 深度监听,该回调会在任何被侦听的对象的 property 改变时被调用,不论其被嵌套多深
    • immediate: true 立即执行,该回调将会在侦听开始之后被立即调用

  注意不应该使用箭头函数来定义watcher函数,this指向不会按照期望指向Vue实例。

computed

  计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。

  计算属性的结果会被缓存

  注意:如果你为一个计算属性使用了箭头函数,则 this 不会指向这个组件的实例,不过你仍然可以将其实例作为函数的第一个参数来访问。

computed和watch用法异同

  相同: computed和watch都起到监听/依赖一个数据,并进行处理的作用

  异同computed主要用于对同步数据的处理,watch则主要用于观测某个值的变化去完成一段开销较大的复杂业务逻辑。能用computed的时候优先用computed,避免了多个数据影响其中某个数据时多次调用 watch的尴尬情况。

template

  一个字符串模板作为 Vue 实例的标识使用。模板将会替换挂载的元素。挂载元素的内容都将被忽略,除非模板的内容有分发插槽

  注意:如果 Vue 选项中包含渲染函数,该模板将被忽略

render

  Vue 推荐在绝大多数情况下使用模板来创建你的 HTML。然而在一些场景中,也可以用渲染函数。它比模板更接近编译器。

    Vue.component(‘anchored-heading‘, {      render: function (createElement) {        return createElement(          ‘h‘ + this.level,   // 标签名称          this.$slots.default // 子节点数组        )      },      props: {        level: {          type: Number,          required: true        }      }    })

  注意:Vue 选项中的 render 函数若存在,则 Vue 构造函数不会从 template 选项或通过 el选项指定的挂载元素中提取出的 HTML 模板编译渲染函数。

原文地址:https://www.cnblogs.com/yaokai729/p/11408934.html

时间: 2024-10-07 18:35:37

vueAPI (data,props,methods,watch,computed,template,render)的相关文章

Vue.js 系列教程 2:组件,Props,Slots

原文:intro-to-vue-2-components-props-slots 译者:nzbin 这是关于 JavaScript 框架 Vue.js 五个教程的第二部分.在这一部分,我们将学习组件,Props 以及 Slots.这个系列教程并不是一个完整的用户手册,而是通过基础知识让你快速了解 Vuejs 以及它的用途. 系列文章: 渲染, 指令, 事件 组件, Props, Slots (你在这!) Vue-cli Vuex 动画 组件和传递数据 如果你熟悉 React 或者 Angular

vue2.0嵌套组件之间的通信($refs,props,$emit)

vue的一大特色就是组件化,所以组件之间的数据交互是非常重要,而我们经常使用组件之间的通信的方法有:props,$refs和emit. 初识组件之间的通信的属性和方法 props的使用 子组件使用父组件的数据,使用vue的属性props. 当我们在父组件parent里面嵌套一个子组件son的时候,如果我们需要使用父组件的数据的时候,我们可以在子组件标签上面绑定一个属性,然后在子组件里面通过props来调用这个属性,就可以使用这个数据了. //父组件 <sonPart :list="list

创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值

1.创建组件的方法   函数组件   class组件 1.1 函数组 无状态函数式组件形式上表现为一个只带有一个 `render()` 方法的组件类,通过函数形式或者 `ES6` 箭头 `function`的形式在创建,并且该组件是无state状态的.具体的创建形式如下 1 import React from 'react '; 2 3 //定义一个React组件 4 function App() { 5 return ( 6 <div> 7 hello React... 8 </div

react基础:插值 ,Props属性

一:插值插值语法是{},在大括号中可以书写任意的表达式,Js内置的方法,定义 的方法,运算符,语句等等{/*在jsx语法中书写注释一定要写在插值符号中*/} 必须是/**/ 且必须放到{}中eg: 二:Props属性两个相同div,给其中的一个添加一个类,这个div展示的样式就不一样的,因为他具有这个属性就叫class区别于其他的div同理来说对于完全一致的组件,展示完全一致,如果给其中一个添加一些属性,这个组件展示的结果就可以能会不同了,因此react提出组件属性的概念,可以对组件添加一些属性

8、在fa时,用HW200句的monophone.mmf和data/list/mono.list作为一个充分训练的模型文件,进行fa

在对ZhiJun40句语料做fa时,ZhiJun_SpeakerA2_30-fa-New,用的是HW2000句的monophone.mmf和data/list/mono.list作为,一个标准的充分训练的模型文件,然后进行fa fa之后得到的是mono类型的标注文件,位于/gv/.../下面, 然后,用Ning的脚本得到full类型的标注, 然后就用这套标注,进行合成了,make一下 结果报错了: =============== ang ================ ERROR [+2121

Expo大作战(三十四)--expo sdk api之LinearGradient(线性渐变),KeepAwake(保持屏幕不休眠),IntentLauncherAndroid,Gyroscope,

简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人修改补充+demo测试的形式,对expo进行一次大补血!欢迎加入expo兴趣学习交流群:597732981 [之前我写过一些列关于expo和rn入门配置的东i西,大家可以点击这里查看:从零学习rn开发] 相关文章: Expo大作战(一)--什么是expo,如何安装expo clinet和xde,xd

新年红包大派送,做个红包兑换小程序大家乐一乐,红包小程序小结

最近做了一个红包兑换小程序,遇到了一些问题这里做一下总结. 1.需求:回流用户在game客户端获取到口令,然后在小程序这边输入口令兑换红包,成功之后钱会发到用户微信账户里. 2.流程:若未授权,显示授权按钮.点击授权登录,授权成功后获取到私密字段iv和encryptedData,调取登陆接口,错误则提示相关信息,正确则跳转校验姓名和shenfenzheng的页面,校验通过就调取提现接口,成功则提示提现成功,同时显示生成分享图按钮.分享图由用户昵称,头像,二维码,提现金额等等组成. 3.框架:un

爱根,你消失一天,我如坠深渊!!!模块讲解,苑之恨!!!

time模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串:(1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型. (2)格式化的时间字符串(Format String): '1988-03-16'. (3)元组(struct_time) :struct_time元组共有9个元素共九个元素:

【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测试配置]) Mysql源码包 (必须选择与你已安装mysql的版本一致) 为了避免安装中出现依赖包缺失,你需要打一句鸡血: yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel exp