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框架的前端登录处理>介绍了一个系统最初接触到的前端登录处理的实现,但往往对整个系统来说,一般会有很多业务对 ...
随机推荐
- 大数据时代,IT行业竟有如此多高薪职位!
近年来云计算.大数据.BYOD.社交媒体.3D打印机.物联网……在互联网时代,各种新词层出不穷,令人应接不暇.这些新的技术.新兴应用和对应的IT发展趋势,使得IT人必须了解甚至掌握最新的IT技能. 另 ...
- Java网络编程学习A轮_07_基于Buffer的Socket编程
示例代码: https://github.com/gordonklg/study,socket module A. LineSeparate 基于 Buffer 实现逐行读取的 EchoServer ...
- Leetcode 50
//1开始我只是按照原来快速幂的思想,当n <0 时,n变成-n,发现当n取-INTMAX时会发生越界的问题,然后在改快速幂代码的时候逐渐了解到快速幂的本质,其实位运算对快速幂来说速度加快不了多 ...
- Web 端屏幕适配方案
基础知识 像素相关 1.像素 :像素是屏幕显示最小的单位. 2.设备像素 :设备像素又称物理像素(physical pixel),设备能控制显示的最小单位,我们可以把这些像素看作成显示器上一个个的点. ...
- DDMS介绍
DDMS全称:Dalvik Debug Monitor Service 一,DDMS的作用 它提供了截屏.查看线程和堆信息.logcat.进程.广播状态信息.模拟来电呼叫和短信.虚拟地理坐标等等. 二 ...
- Editor does not contain a main type
1.错误描述 2.错误原因 在含有main方法的类中,运行应用程序,却提示这个错误:编译器不包含main类型 3.解决办法 (1)选择该Java类上一级文件,build path--->use ...
- HDU 3986
http://acm.hdu.edu.cn/showproblem.php?pid=3986 从开始的最短路里依次删一条边,求新的最短路,求最长的最短路 删边操作要标记节点以及节点对应的边 #incl ...
- Cobbler自动化安装部署系统
自动化安装部署 https://www.cnblogs.com/nulige/p/6796593.html PXE+Kickstart工作原理 pxe+kickstart工作流程 网卡上的pxe芯片有 ...
- Python 高性能并行计算之 mpi4py
MPI 和 MPI4PY 的搭建上一篇文章已经介绍,这里面介绍一些基本用法. mpi4py 的 helloworld from mpi4py import MPI print(&quo ...
- .NET 中创建支持集合初始化器的类型
对象初始化器和集合初始化器只是语法糖,但是能让你的代码看起来更加清晰.至少能让对象初始化的代码和其他业务执行的代码分开,可读性会好一些. 本文将编写一个类型,可以使用集合初始化器构造这个类型.不只是添 ...