Vue中用的比较多的几个API

更新日期: 2020-09-10阅读: 1.5k标签: api

1. 数据vue.set 和 Vue.delete

在Vue2.x中,当一个Vue实例创建好了以后,如果想要后续给该实例的某一个data添加属性,该属性是不会触发视图更新的,解决方法是使用Vue.set或者vm.$set方法添加指定属性。

例如

<template>
  <div>
      <p>foo.a is {{foo.a}}</p>
      <p>foo.b is {{foo.b}}</p>
      <button @click="foo.a = 111">change a to 111</button>
      <button @click="foo.b = 111">change b to 111</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      foo: { a: 123 }
    }
  },
  created() {
    //在Vue实例创建成功,但是还未挂载到dom树之前给foo增加b属性。
    this.foo.b = 456;
  }
}
</script> 

以上代码在Vue实例创建成功,但是还未挂载到dom树之前给foo增加b属性,此时再页面上可以正常看到foo.a,但是点击修改foo.b页面并不会发生变化。

正确的写法

created() {
  this.$set(this.foo, 'b', 456);
  //或者
  Vue.set(this.foo, 'b', 123);
  
  //对于数组,第二个参数是下表
}

同样的,想要删除一个属性并触发视图更新,并不能直接使用delete,而要用Vue.delete(target, propertyName/index)或者vm.$delete(target, propertyName/index)。

但是,目前在Vue3中,直接使用**this.foo.b = 456**也一样可以触发视图更新,也可以直接使用delete删除属性。


2. 事件:vm.onemit onceoff

vm.$emit和vm.$on是基于发布订阅模式的,常用在子组件向父组件派发事件的时候使用,在子组件上使用@xxx="callback"指令即可,但是除了这种方法,也可以直接在子组件中使用vm.$on也可以触发vm.$emit派发的事件,需要注意的是在哪个组件派发就应该在哪个组件订阅,即事件的派发者既是事件的订阅者。

vm.$emit('test', 'hello'); //派发事件
vm.$on('test', (msg) => {  //订阅事件
  console.log(msg);
}) 

基于这两个api,可以实现一个简单的跨组件通信的方法:事件总线,原理是在Vue的原型上添加一个Vue实例,之后所有组件都可以通过这个Vue实例进行发布消息和订阅消息。

Vue.prototype.$bus = new Vue();

const vm1 = new Vue({...});
const vm2 = new Vue({...});

vm1.$bus.$emit('test', 'hello'); //vm1派发事件
vm2.$bus.$on('test', (msg) => {  //vm2订阅事件
  console.log(msg);
})

vm.$once和vm.$on差不多,区别在于前者在监听到一次事件后就会将该事件移除。

vm.$off用于移除事件监听器

如果没有提供参数,则移除所有监听器。
如果提供了事件的名称,则移除该事件所有的监听器。
如果提供了事件名称与回调引用,则移除这个回调的监听器。

vm.$off(); //移除所有的事件监听器
vm.$off('test'); //移除该事件所有的监听器
vm.$off('test', callback); //只移除这个回调的监听器

链接: https://www.fly63.com/article/detial/9839

浏览器中的图像识别 API

在 Native 开发中,Android 和 IOS 平台都在系统层面直接提供给了应用开发识别图像的一些能力,比如对于二维码/条形码的识别,Android 可以使用 barcode API 、 iOS 可以使用 CIQRCodeFeature API 。

JavaScript的API设计原则

Js的API设计原则总共包含了七个大块。系卤煮自己总结的一些经验和教训。本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来。很难做到详尽充实,如果有好的建议或者不对的地方,还望不吝赐教斧正。

适合写api接口文档的管理工具有哪些?

现在越来越流行前后端分离开发,使用ajax交互。所以api接口文档就变的十分有意义了,目前市场有哪些比较优秀的接口文档管理工具呢?比如:MinDoc,eoLinker,apizza,RAML,Swagger等等

前后端分离,如何防止api接口被恶意调用或攻击

无论网站,还是App目前基本都是基于api接口模式的开发,那么api的安全就尤为重要了。目前攻击最常见的就是“短信轰炸机”,由于短信接口验证是App,网站检验用户手机号最真实的途径,使用短信验证码在提供便利的同时,也成了呗恶意攻击的对象,那么如何才能防止被恶意调用呢?

JSON API免费接口_ 免费的天气预报、地图、IP、手机信息查询、翻译、新闻等api接口

整理提供最新的各种免费JSON接口,其中有部分需要用JSONP调用。方面前端同学的学习或在网站中的使用,包括:免费的天气预报、地图、IP、手机信息查询、翻译、新闻等api接口

什么是RESTful API?

要弄清楚什么是RESTful API,首先要弄清楚什么是REST。REST -- REpresentational State Transfer,英语的直译就是“表现层状态转移”。如果看这个概念,估计没几个人能明白是什么意思。

认识 Fetch API

Fetch API 已经作为现代浏览器中异步网络请求的标准方法,其使用 Promise 作为基本构造要素。Fetch 在主流浏览器中都有很好的支持,除了IE。

用一个通俗的例子讲清楚API

随着移动互联网的发展, 基于互联网的应用正变得越来越普及,在这个过程中,更多的平台将自身的资源开放给开发者来调用。对外提供的API 调用使得平台之间的内容关联性更强,同时这些开放的平台也为用户、开发者和中小网站带来了更大的价值。

docker提供api访问

环境centos,添加deamon.json后,dockerd命令可以启动docker,这时请求 127.0.0.1:2375 可以正常访问,使用systemctl无法启动docker的情况.无法启动docker:查看当前的docker配置

构建API的最佳编程语言是什么?

你是否正在设计第一个Web应用程序?也许你过去已经建立了一些,但是目前也正在寻找语言的变化以提高你的技能,或尝试新的东西。有了所有信息,就很难决定为下一个产品或项目选择哪种编程语言。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!