vue语法精简(方便开发查阅)
vue语法精简(方便开发查阅)
本文只是方便开发的时候快速查阅到相关语法,想看详细内容请看官网(时间久了写法都忘了,~~哭)
指令
vue create app 创建项目
{{msg}} 文本插值
v-once 一次性渲染插值
v-html 输出html
v-if 是否显示,(1.多个同级标签,使用template包裹 2.使用key区分不同元素)
v-else
v-else-if
v-show 是否显示,css层面的
v-on:click 监听点击事件
v-on:click.prevent 阻止默认行为
v-bind:class="{ active: isActive }" 绑定class
v-bind:style="{ color: activeColor}" 绑定style
v-for="(item, index) in items" 遍历数据,(1.in可以使用of代替 2.绑定key区分不同的元素)
v-for="(value, key, index) in object" 便利对象
v-on:keyup.enter="submit" 按键修饰符(v-on:keyup.13="submit")
v-model="message" 表单双向绑定
特殊的标签和属性
<slot></slot> 插槽,代指组件标签嵌套的内容
<component v-bind:is="currentTabComponent"></component> 动态组件
<keep-alive> 缓存组件状态
<component v-bind:is="currentTabComponent"></component>
</keep-alive>
this.$root 访问根组件
this.$parent 访问父组件
<base-input ref="usernameInput"></base-input>
this.$refs.usernameInput 访问组件元素
props验证(String Number Boolean Array Object Date Function Symbol)
props: {
// 基础的类型检查 (`null` 匹配任何类型)
propA: Number,
// 多个可能的类型
propB: [String, Number],
// 必填的字符串
propC: {
type: String,
required: true
},
// 带有默认值的数字
propD: {
type: Number,
default: 100
},
// 带有默认值的对象
propE: {
type: Object,
// 对象或数组默认值必须从一个工厂函数获取
default: function () {
return { message: 'hello' }
}
},
// 自定义验证函数
propF: {
validator: function (value) {
// 这个值必须匹配下列字符串中的一个
return ['success', 'warning', 'danger'].indexOf(value) !== -1
}
}
}
变异方法
直接调用下面这些方法,vue会自动更新
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
使用下面方法,修改指定的键值
Vue.set(object, key, value)
使用下面方法,为对象添加属性
Object.assign({}, this.obj, {key: ..., value: ...})
事件修饰符
.stop 阻止冒泡
.prevent 阻止默认行为
.capture 使用捕获
.self 当前元素触发事件
.once 事件触发一次
.passive 滚动行为优化(<div v-on:scroll.passive="onScroll">...</div>)
.native 原生事件
按键修饰符
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
.ctrl
.alt
.shift
.meta
自定义keycode
Vue.config.keyCodes.f1 = 112
// v-on:keyup.f1
表单修饰符
v-model.lazy="msg" // 在“change”时而非“input”时更新
v-model.number="msg" // 将用户的输入值转为数值类型
v-model.trim="msg" // 自动过滤用户输入的首尾空白字符
生命周期函数
beforeCreate
created
beforeMount
mounted
beforeUpdate
beforeDestroy
destroyed
计算属性
基本语法
<span>{{filterMsg}}</span> data: function() {
return {
message: '我是原始的属性'
}
},
computed: {
filterMsg: function() {
return "|||||" + this.message + "||||"
}
}
set
<input type="text" v-model="filterMsg">
<span>{{filterMsg}}</span> data: function() {
return {
message: "我是原始的属性"
};
},
computed: {
filterMsg: {
get: function() {
return "|||||" + this.message + "||||";
}, set: function(val) {
this.message = val.substring(5).slice(0,-4);
}
}
}
监听属性
<input type="text" v-model="message">
<span>{{filterMsg}}</span>
data: function() {
return {
message: "",
filterMsg: ""
}
},
watch: {
message: function(val) {
this.filterMsg = "|||||" + val + "||||"
}
}
子组件通过事件向父组件传递信息
父组件
<template>
<div>
<Test @parentFn="fn" />
</div>
</template>
<script>
import Test from "./Test";
export default {
components: {Test},
methods: {
fn: function(val) {
console.log(val);
}
}
};
</script>
子组件
<template>
<button @click="$emit('parentFn', '子组件传递的参数')">点击</button>
</template>
在组件上使用v-model
父组件
<template>
<div>
<Test :value="searchText" @input="searchText = $event"/>
</div>
</template>
<script>
import Test from "./Test";
export default {
components: { Test },
data: function() {
return {
searchText: ""
}
},
watch: {
searchText: function(val) {
console.log(val);
}
}
};
</script>
子组件
<template>
<input :value="value" @input="$emit('input', $event.target.value)">
</template>
<script>
export default {
props: ['value']
}
</script>
动画
动画示例1
<transition name="fade">
<p v-if="show">hello</p>
</transition>
.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
动画示例2
<transition name="slide-fade">
<p v-if="show">hello</p>
</transition>
.slide-fade-enter-active {
transition: all .3s ease;
}
.slide-fade-leave-active {
transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to{
transform: translateX(10px);
opacity: 0;
}
动画示例3
<transition name="bounce">
<p v-if="show">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris facilisis enim libero, at lacinia diam fermentum id. Pellentesque habitant morbi tristique senectus et netus.</p>
</transition>
.bounce-enter-active {
animation: bounce-in .5s;
}
.bounce-leave-active {
animation: bounce-in .5s reverse;
}
@keyframes bounce-in {
0% {
transform: scale(0);
}
50% {
transform: scale(1.5);
}
100% {
transform: scale(1);
}
}
vue语法精简(方便开发查阅)的更多相关文章
- vuex语法精简(方便开发查阅)
vuex语法精简(方便开发查阅) store结构 state Getter Mutation actions vuex语法精简(方便开发查阅) 本文只是方便开发的时候快速查阅到相关语法,想看详细内容请 ...
- python 全栈开发,Day89(sorted面试题,Pycharm配置支持vue语法,Vue基础语法,小清单练习)
一.sorted面试题 面试题: [11, 33, 4, 2, 11, 4, 9, 2] 去重并保持原来的顺序 答案1: list1 = [11, 33, 4, 2, 11, 4, 9, 2] ret ...
- idea 添加 VUE 的语法支持和开发
<一>VUE的开发分两种,一种是直接在HTML文件中使用,一种是VUE文件的形式开发 1,首先我们先让 HTML 文件支持 VUE 的语法指令提示 2,File -> Setting ...
- spring boot + vue + element-ui全栈开发入门——集成element-ui
一.IDE开发工具 常用的开发工具有webstorm和sublime. 我个人喜好用Atom+插件的形式 打开Atom,在file --> settings --> packages中收 ...
- 【06】Vue 之 组件化开发
组件其实就是一个拥有样式.动画.js逻辑.HTML结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue的组件和也做的非常彻底,而且有自己的特色.尤其是她 ...
- 循序渐进VUE+Element 前端应用开发(1)--- 开发环境的准备工作
之前一直采用VS进行各种前端后端的开发,随着项目的需要,正逐步融合纯前端的开发模式,开始主要选型为Vue + Element 进行BS前端的开发,后续会进一步整合Vue + AntDesign的界面套 ...
- 循序渐进VUE+Element 前端应用开发(4)--- 获取后端数据及产品信息页面的处理
在前面随笔<循序渐进VUE+Element 前端应用开发(3)--- 动态菜单和路由的关联处理>中介绍了在Vue + Element整合框架中,实现了动态菜单和动态路由的处理,从而可以根据 ...
- 循序渐进VUE+Element 前端应用开发(6)--- 常规Element 界面组件的使用
在我们开发BS页面的时候,往往需要了解常规界面组件的使用,小到最普通的单文本输入框.多文本框.下拉列表,以及按钮.图片展示.弹出对话框.表单处理.条码二维码等等,本篇随笔基于普通表格业务的展示录入的场 ...
- 循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理
在前面随笔<循序渐进VUE+Element 前端应用开发(12)--- 整合ABP框架的前端登录处理>介绍了一个系统最初接触到的前端登录处理的实现,但往往对整个系统来说,一般会有很多业务对 ...
随机推荐
- 中国铁路基于Intel架构超大规模OpenStack行业云的性能优化研究
1. 项目简介 铁路作为一种大众化的交通工具和非常重要的货物运输方式,其业务规模庞大.覆盖全国.服务全国各族人民.铁路面向公众提供的服务业务,主要是客运和货运两大类,且每年365天.每天7*24小时连 ...
- Kolakoski数列
2018-04-16 15:40:16 Kolakoski序列是一个仅由1和2组成的无限数列,是一种通过“自描述”来定义的数列.他在整数数列大全网站上排名第二位,足见该数列在组合数学界中的重要性. K ...
- Android之扫描二维码和根据输入信息生成名片二维码
开发中常常遇到二维码扫码操作,前段时间做项目要实现该功能,于是网上查找资料实现了,现在把他做出来给各位分享一下,主要包含了二维码扫描和生成二维码名片. 先来看看效果图: 生成的二维码,打开微信扫一 ...
- IOS-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 时间:2015-05-06 16:43:34 阅读:533 评论:0 收藏:0 [点我收藏+] ...
- IOS-网络(AFNetworking)
一.AFNetWorking基本使用 // // ViewController.m // IOS_0112_AFNetWorking // // Created by ma c on 16/2/11. ...
- asp.net导出excel并弹出保存提示框
asp.net导出excel并弹出保存提示框 2013-07-12 | 阅:1 转:78 | 分享 腾讯空间 人人网 开心网 新浪微博 腾讯微博 搜狐空间 推荐给朋友 举报 ...
- NodeJS反序列化漏洞利用
原文来自:http://www.4hou.com/web/13024.html node.js是一个服务器端的运行环境,封装了Google V8引擎,V8引擎执行JavaScript速度非常快,性能非 ...
- MDI窗体及涉及到的相关问题
MDI窗体是个什么东东尼?多文档窗体唠,相对的还有个SDI,就是单文档窗体.一般情况下我们会将软件的主窗体设置为MDI窗体.那么在主窗体的菜单部分调出来的其他窗体就是主窗体的子窗体了. (1)在主窗体 ...
- js:关闭当前页面
var userAgent = navigator.userAgent; if (userAgent.indexOf("Firefox") != -1 || userAgent.i ...
- Win2D 中的游戏循环:CanvasAnimatedControl
Win2D 是 DirectX 的一个高层封装,提供了极大 DirectX 性能的同时,又具有很好用的 API 设计. 用 Win2D 除了能做出高性能的视觉效果之外,还可以轻而易举地搭建一个游戏循环 ...