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框架的前端登录处理>介绍了一个系统最初接触到的前端登录处理的实现,但往往对整个系统来说,一般会有很多业务对 ...
随机推荐
- 使用 shinydashboard
除了 shiny 扩展包提供的函数之外,RStudio 也开发了一个 shinydashboard 扩展包 (http://rstudio.github.io/shinydashboard/),它呈现 ...
- MongoDB排序异常
com.mongodb.MongoQueryException: Query failed with error code 96 and error message 'Executor error d ...
- Python yield 用法
一.环境 python 3.6 二.yield 说明 yield 是一个生成器,可以用于迭代.也是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值. 重点是: ...
- 雷林鹏分享:Ruby Socket 编程
Ruby Socket 编程 Ruby提供了两个级别访问网络的服务,在底层你可以访问操作系统,它可以让你实现客户端和服务器为面向连接和无连接协议的基本套接字支持. Ruby 统一支持应用程的网络协议, ...
- Rails 5 Test Prescriptions(everday Rspectest作者推荐) 目录 1-3章
总文档连接: RSpec.info/documentation/ 如何使用TDD 和 自动化测试来建立一个Rails app. TDD让你用测试来探索代码的设计.你将学习可利用的工具,并学习用什么工具 ...
- HDU-4511-ac自动机+dp
小明系列故事——女友的考验 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- Android数据库升级不丢失数据解决方案
在Android开发中,sqlite至关重要,增删查改不多说,难点在于,1,并发,多个线程同时操作数据库.2,版本升级时,如果数据库表中新加了个字段,如何在不删除表的情况下顺利过渡,从而不丢失数据. ...
- js 数据函数
//shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] ...
- 2018.11.28 RF基础1
1 射频元件 高频电阻: 高频电容: 高频电感: 2 传输线 a 传输线效应:阻抗,3M法则. b 同轴线:RF中用 c 微带线: 常用: 1/4变换线 回波损耗:用网络分析仪测量 插入损耗:传输功率 ...
- angular的中文文档在这里。。
链接 仿ant-design的 angular组件 echarts文档