vue.js
来源:互联网 发布:淘宝全球购申请入口 编辑:程序博客网 时间:2024/05/29 17:57
模板语法
插值
1.文本
<div id="app"> <p>{{ message }}</p></div><script>new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }})</script>
2.html (使用v-html)
<div id="app"> <div v-html="message"></div></div><script>new Vue({ el:"#app", data:{ message="<h1>大宝</h1>" }})</script>
3.属性
(v-bind)
<div id="app"> <div v-bind:class="{'class1': class1}"> </div></div><script>new Vue({ el:"#app", data:{ class1:true }})</script>
4.表达式
Vue.js 都提供了完全的 JavaScript 表达式支持
指令
指令是带有 v- 前缀的特殊属性
判断v-if 例: <div v-if="see"></div> //根据see的值(true或false)来决定是否插入元素。v-else 例: <div v-else></div>//可以用 v-else 指令给 v-if 添加一个 "else" 块v-else-if 例:<div v-else-if="type === 'B'">B</div>//用作 v-if 的 else-if 块,可以链式的多次使用显示v-show 例:<h1 v-show="ok">Hello!</h1>//根据条件展示元素v-bind:属性名 例:<a v-bind:href="url">大宝</a>//设置属性值 缩写 : 例<a :href="url">大宝</a><div v-bind:class="[activeClass, errorClass]"></div> <div v-bind:class="[errorClass ,isActive ? activeClass : '']"></div>//三元表达式<div v-bind:style="{color:color}">更改样式</div>多个样式<div v-bind:style="[baseStyles, overridingStyles]">多个样式</div>v-on:事件名 例:<a v-on:click="doSomething">例:<form v-on:submit.prevent="onSubmit"></form> //监听DOM事件 .修饰符 用于指出一个指定应该以特殊方式绑定缩写 @ 例<a @click="doSomething">大宝</a>v-model 例:<input v-model="message"> //数据绑定 单选框或多选框 v-model的值等于value值的被选中select列表 v-model="" 值设为空,默认选取选中option的value中修饰符 .lazy 同步input输入框的值,在change事件中同步.number 如果想自动将用户的输入值转为 Number 类型.trim 自动过滤用户输入的首尾空格循环v-for 例:<li v-for="迭代别名 in 原数组">{{迭代别名.键名}}</li><li v-for="value in 原数组">{{value}}</li><li v-for="(value,key) in 原数组">{{key}}:{{value}}</li><li v-for="(value,key,index) in 原数组">{{index}}.{{key}}:{{value}}</li> //index为索引<li v-for="n in 10">{{ n }}</li> //迭代整数
过滤器
A为值,其|后的所有内容为过滤器{{A|B}}<div v-bind:id="A|B"></div>串联 {{A|B|C}}{{A|arr('B',C)}} //A是第一个参数,B将传给过滤器为第二参数,C的值将作为第三个参数
构造器
var vm= new Vue({ })vm.a .... vm.$data ... Vue 实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀 $,以便与代理的 data 属性区分
样式
data:{ class1:true } //定义数值methods: { 函数名: function () { .... } //定义函数computed:{ 函数名: function () { .... 数值名:{ //get 获取值时触发,与setter是没有必然联系的 get:function(){ }, //set 设置值时触发 set:function(newValue){ } } } //计算属性,在处理一些复杂逻辑时 一般用法是改变data里面的值,作为自己的值}methods与computed 效果一样。区别:computed基于它的依赖缓存,只有相关依赖发生改变时才会重新取值methods 在重新渲染时,函数总会重新调用执行filters: { 过滤器名: function (value) { .... }} //定义过滤器函数
v-on事件修饰符
修饰符可以串联
.stop 阻止单击事件冒泡.prevent 提交事件不再重载页面.capture 添加事件侦听器时使用事件捕获模式.self 只当事件在该元素本身,不是子元素 触发时触发回调.once click 事件只能点击一次.native 某个组件的根元素上监听一个原生事件
组件
注册组件Vue.component(组件名,配置选项)调用 <组件名></组件名>
全局组件
所有实例都能用全局组件
<div> <组件名></组件名></div>Vue.component('组件名',{ template:'<h1>...</h1>'})
局部组件
var hh={ template:"<h2>哼</h2>" }new Vue({ el:'#app', components:{ runner:hh }})调用: <runner></runner>注意 此例中,只能在div id=app 中才生效
prop
是父组件用来传递数据的一个自定义属性
父组件的数据需要通过props把数据传给子组件,子组件需要显示地用props选项声明“prop”
<child message="hello!"></child>Vue.component('child', { // 声明 props props: ['message'], // 同样也可以在 vm 实例中像 "this.message" 这样使用 template: '<span>{{ message }}</span>'}) 显示hello!
动态prop
v-bind 和prop结合
<div id="app"> <runner v-bind:message="rack"></runner> </div> Vue.component('runner',{ props:['message'], template:"<h1>{{message}}</h1>" }) new Vue({ el:"#app", data:{ rack:"十一月" } }) 显示 十一月
prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来
prop验证
组件可以为props 指定验证要求
prop是一个对象而不是字符串数组时,它包含验证要求
Vue.component('example',{ 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 value>10 } } }})
自定义事件
父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,就需要使用自定义事件
使用 $on(eventName) 监听事件
使用 $emit(eventName) 触发事件
父组件可以在使用子组件的地方直接用 v-on 来监听子组件触发的事件
自定义指令
directives:{ //注册一个局部的自定义指令 v-focus}
阅读全文
0 0
- vue.js
- vue.js
- vue.js
- Vue.js
- vue.js
- Vue.js
- vue.js
- vue.js
- vue.js
- Vue.js
- vue.js
- Vue.js
- Vue.js
- Vue.js
- Vue.js
- Vue.js
- Vue.js
- vue.js
- java——JVM原理
- CSS3实现动态翻牌效果 仿百度贴吧3D翻牌一次动画特效
- 数据结构课程总结
- 嵌入式 hi3518平台uboot引导nfs文件系统
- Object的equals方法
- vue.js
- 24点算法详解--Java代码实现
- 《数字技术》连载31:第4章 信息传输的控制和选择 第4节 多路选择器
- 九次方华东区总经理姚乐生:大数据建设要结合地方产业
- Eclipse 卡死在 Android SDK Content Loader
- 普元信息政务大数据咨询顾问夏佳斌:数据资源体系的核心——资源定义、运营机制和支撑平台
- 专访泰康大数据部总经理周雄志:“经验驱动”成为过去式,“数据驱动”基本实现
- java实现定时任务的三种常用方法
- SODA理事会理事、苏打数据CEO高丰:只有数据流通,数据才能创造价值