vue中typescript装饰器的使用方法超实用教程


Posted in Javascript onJune 17, 2019

VueConf ,尤大说, Vue 支持 Ts 了,网上关于 Vue + Ts 的资料有点少, 楼主踩了一个星期坑,终于摸明白了 修饰器 的玩法,下面我们就来玩下 Vue 的 decorator 吧

1,data 值的声明

vue中typescript装饰器的使用方法超实用教程 

在这里 public 声明的是公有属性, private 声明的是私有属性,私有属性要带 下划线

蓝色框里的内容是声明组件,在每个组件创建时都要带上, Components 中的写法如下

vue中typescript装饰器的使用方法超实用教程 

上面是 普通写法 ,下面是 懒加载写法

2.@Prop 父组件传值给子组件

vue中typescript装饰器的使用方法超实用教程 

父组件使用 v-bind 传递与js版本一样,在父组件接受是使用修饰器

@Prop({type:‘类型'})

readonly:传递的参数名称!:类型

一定要写全,不然后报错,也可以写个 接口 约束 类型

3.@Emit  子组件给父组件传值

vue中typescript装饰器的使用方法超实用教程 

@Emit('传给父组件的值')

callback

父组件接收与 js 版本一致

4.@Provide @Inject  混入

vue中typescript装饰器的使用方法超实用教程 

这个没什么说的, @Provide 声明一个值 , 在其他地方用 @Inject 接收

5.@Model 双向绑定

vue中typescript装饰器的使用方法超实用教程 

这个也很简单,v-model绑定一个值,在子组件使用 @Model('页面展示的值') 值类型

这里我偷懒,声明一样的 (手动笑哭)

5.@Watch   监听函数

vue中typescript装饰器的使用方法超实用教程 

@Watch('监听的值',{深度监听})

callback 回调函数

6.钩子函数的声明

与js基本一致

Ts          -> Js
public create() {} -> create() {}
public mounted() {}  ->  mounted() {}
eg:
private _changeMsg() {} ->  methods: {
_changeMsg() {}
}
eg:
private get _changeValue() {} -> computed: {
_changeValue() {}
}
public destory() {}      -> destory() {}

7.@State vuex中state的值

vue中typescript装饰器的使用方法超实用教程 

@State(state => state数据里的参数) 页面展示的值

!!!!!! 注意vuex的数据都要在钩子函数里 调用 !!!!!!!!!!!!!!

8.@Mutation  vuex中的mutation

vue中typescript装饰器的使用方法超实用教程 

使用与 @State 一致

!!!!!!!!!!!!!需要注意的是要写一个接口 将state里面的数据类型写进去,如果直接用

state编辑器会报错 , 当然声明any类型也是可以的, 但是用了Ts还是尽量不要用any吧  

    !!!!!!!!!!!!!!!!!!!!

9.@Action vuex 中的action

vue中typescript装饰器的使用方法超实用教程 

@Action('action里的方法名') 页面展示的方法

!!!!!!!!  由于异步,需要加async await 不然会一直处在padding状态,

 使用promise也是可以的            !!!!!!!!!!!!!!!

至于 vue.config.js 网上很多方法,有兴趣的可以去找下,在这里贴下自己的

vue中typescript装饰器的使用方法超实用教程vue中typescript装饰器的使用方法超实用教程

     vue中typescript装饰器的使用方法超实用教程

      !!!!!!!!!!!!!!!!!!!!!!!

       使用时一定引入修饰器  

以上就是小编给大家姐的vue中typescript装饰器的使用方法超实用教程,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
一个JS的日期格式化算法示例
Jul 31 Javascript
javascript实现检验的各种规则
Jul 31 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
javascript跨域的方法汇总
Oct 23 Javascript
封装获取dom元素的简单实例
Jul 08 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
Dec 20 Javascript
详解本地Node.js服务器作为api服务器的解决办法
Feb 28 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
vue2单元测试环境搭建
May 24 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
JavaScript数组常用的增删改查与其他属性详解
Oct 13 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
Mar 01 jQuery
简单学习5种处理Vue.js异常的方法
Jun 17 #Javascript
js/jQuery实现全选效果
Jun 17 #jQuery
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
Jun 17 #Javascript
通过说明与示例了解js五种设计模式
Jun 17 #Javascript
简单了解vue.js数组的常用操作
Jun 17 #Javascript
送你43道JS面试题(收藏)
Jun 17 #Javascript
通过实例学习React中事件节流防抖
Jun 17 #Javascript
You might like
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
[01:14]2014DOTA2展望TI 剑指西雅图newbee战队专访
2014/06/30 DOTA
对python中return和print的一些理解
2017/08/18 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
python机器学习之神经网络(一)
2017/12/20 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
初三政治教学反思
2014/01/30 职场文书
四年级语文教学反思
2014/02/05 职场文书
阅兵口号
2014/06/19 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书