1.创建vue对象
<script src="vue.js"></script>
var vm = new Vue({
el:"#app",//挂载点,vue作用的范围只会在id为app的这个元素的内部
data:{
message:1824//定义当前组件所需要的一些状态,定义当前vue所需要的一些属性
}
})
2.v-text
在vue当中我们可以直接访问data中的属性
1.v-text:
底层原理主要是应用了在数据解析这块的innerText
eg:<h2 v-text="message"></h2>
2.v-text:
值可以写任何js的表达式
eg:
<h2 v-text="1+1"></h2>
<h2 v-text="message.slice(1)"></h2>
<h2 v-text="message?123:456"></h2>
3.v-text:
简写{{}}
区别:{{}}在页面第一次加载的时候会显示{{}},而v-text不会
3.v-html
v-html:
解析html,相当于innerHTML
一般情况不会使用的,因为会有xss攻击,会通过这个在页面插入元素
eg:
<div v-html="p"></div>
4.v-show和v-if
1.v-show:底层是操作元素的display属性
显示隐藏,用于非权限问题(选项卡,组件切换,动画)
true:显示、
false:隐藏(在页面上显示和隐藏)
eg:
<div class="box" v-show="flag">
<input type="text">
</div>
2.v-if:底层是操控元素的创建和销毁
显示隐藏,用于权限问题(比如后台管理系统,用户会员级别,登录和非登录)
可以进行多个选择处理
true:显示
false:隐藏(所有元素创建销毁)
eg:
<div class="box" v-if="n==1">1111</div>
<div class="box" v-else-if="n==2">2222</div>
<div class="box" v-else>333</div>
5.v-for(数据的遍历)
1.可以遍历数组
eg:<li v-for="(item,index) in arr">{{item}}-----{{index}}</li>
2.可以遍历对象
eg:<li v-for="(val,key) in obj">{{val}}-----{{key}}</li>
3.可以遍历数组对象
eg:<li v-for="item in res">{{item.name}}</li>
4.可以遍历字符串
eg:<p v-for="item in str">{{item}}</p>
5.可以遍历数字
eg:<p v-for="item in 20">{{item}}</p>
6.v-on
1.v-on:
进行事件的绑定:冒号后面是事件的名称,值为事件的函数
eg:
methods:{
handle(){
console.log(111)
},
}//vue中所有的事件都需要放在methods中
2.语法:v-on:事件名称 = 事件函数
eg:<button v-on:click="handle()">点击</button>
3.简写:@事件名称
eg:<button @click="handle()">点击2</button>
7.修饰符
指令后面用.链接的属性叫做修饰符
.stop 阻止事件冒泡
.prevent 阻止浏览器默认事件
.once 事件只触发一次
.enter 回车
eg:
<div class="box" @contextmenu.prevent="menu()"></div>
<input type="text" @keydown.13="handlekeydown()">
8.事件对象
如果需要使用事件对象则需要传递一个$event
eg:
<div class="box" @click.once="handleBox($event,123)">
<div class="box1" @click.stop="handleBox1($event)"></div>
9.v-bind
1.绑定属性
2.简写 :属性
3.语法: v-bind:属性 = 值
4.常见:title.class.id.alt.style.src.href
eg:
<div
v-bind:title="title"
v-bind:id="id"
v-bind:class="className2"
v-bind:alt="alt"
:style="myStyle"
></div>
ps:true是拥有属性
false是不拥有此属性
10.v-once
只绑定一次,数据的值只渲染一次
eg:<h2 v-once>{{message}}</h2>
11.v-pre
不解析vue的数据
eg:<div v-pre>v-pre他的作用不会解析{{message}}中的数据</div>
12.v-cloak
解决{{}}的第一次加载显示的问题
eg:
<h2 v-cloak>{{message}}</h2>
<style>
[v-cloak]{
display:none;
}
</style>
13.v-model
1.可以用来实现双数据绑定
eg:
<input type="text" v-model="inputVal">
<p>{{inputVal}}</p>
2.这个指令只能给表单进行使用
eg:
<label>
男:<input type="radio" v-model="radioVal" value="男">
</label>
<label>
女:<input type="radio" v-model="radioVal" value="女">
</label>
<p>您选择的性别是:{{radioVal}}</p>
3.是根据表单的value值来去改变data中属性的值
eg:
<select v-model="selectVal">
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
<option value="1995">1995</option>
<option value="1996">1996</option>
</select>
<p>您选择的年龄是:{{selectVal}}</p>
作用:如果表单上面加了v-model那么data中与表单绑定的那个属性就会随着表单的改变而改变
eg:
<label>
抽烟:<input type="checkbox" v-model="checkVal" value="抽烟">
</label>
<label>
喝酒:<input type="checkbox" v-model="checkVal" value="喝酒">
</label>
<label>
烫头:<input type="checkbox" v-model="checkVal" value="烫头">
</label>
<label>
大保健:<input type="checkbox" v-model="checkVal" value="大保健">
</label>
<p>您的爱好为:
<p v-for="item in checkVal">{{item}}</p>
</p>
14.面试题:
如何理解响应式原理?v-model的底层原理是什么? 如果自己手动封装v-model?
var vm = new Vue({
el:"#app",
data:{
inputVal:"",
radioVal:"男",
checkVal:[],
selectVal:"1995"
},
methods:{
handleChange(e){
let val = e.target.value;
let flag = this.checkVal.includes(val);
if(flag){
var index = this.checkVal.indexOf(val);
this.checkVal.splice(index,1);
}else{
this.checkVal.push(val);
}
}
}
})
14.自定义指令(必须要在vue实例化之前创建)
全局创建:Vue.directive()
参数1:指令名称
参数2:指令实现的函数
参数1:指令作用的元素 DOM元素
参数2:指令的信息,是一个对象{value:表达式的结果,rawName:指令的全程,modifiers:修饰符}
eg1:
<div v-color="color" v-font="size">加油你们都是胖的</div>
Vue.directive("color", (el, { value }) => {
el.style.color = value;
})
eg2:
<div class="box" v-click="handleBox" v-hide.timeout>
<button v-click.s="handle">点击</button>
Vue.directive("font", (el, { value }) => {
el.style.fontSize = value;
})
Vue.directive("click",{
inserted(el,{value,modifiers}){
let {s} = modifiers
el.onclick = function(e){
if(s){
e.cancelBubble = true;
}
value();
}
}
})
Vue.directive("hide", (el, { value, modifiers }) => {
console.log(modifiers)
let { timeout } = modifiers;
console.log(timeout)
if (timeout) {
setTimeout(() => {
el.style.display = "none";
}, 2000)
} else {
el.style.display = "none";
}
})
- 最简单的方式理解Vue的自定义指令与混合
vue.js 自定义指令 钩子函数:bindinsertedupdatecomponentUpdatedunbind 钩子函数完整实例:html: <div id="hook-argu ...
- vue.js自定义指令入门
Vue.js 允许你注册自定义指令,实质上是让你教 Vue 一些新技巧:怎样将数据的变化映射到 DOM 的行为.你可以使用Vue.directive(id, definition)的方法传入指令id和 ...
- Vue.js自定义指令的用法与实例
市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲自定义指令的用法. 自定义指令是用来操作DOM的.尽管Vu ...
- vue 通过自定义指令实现 置顶操作;
项目需求:要求当前项目每个页面滑到超出一屏的距离时,出现 backTop 按钮,点击则回到最顶端:俗称置顶操作: 因为涉及到的页面较多,每个页面都加肯定显得重复累赘,最终想到了 Vue 的自定义指令 ...
- Vue基础01vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令
自学vue框架,每天记录重要的知识点,与大家分享!有不足之处,希望大家指正. 本篇将讲述:vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令 前期学习基础,使用vue. ...
- Vue(九) 自定义指令
前面介绍了许多 Vue 内置的指令,比如 v-if.v-show等,这些丰富的指令能满足我们绝大部分的业务需求,不过在需要一些特殊功能时,我们仍然希望对 DOM 进行底层的操作,这时就要用到自定义指令 ...
- Vue.directive自定义指令
Vue除了内部指令,我们也可以定义一些属于自己的指令,比如我们要定义一个v-diy的指令,作用就是让文字变成红色. 写好了这个功能,我们现在就自己定义一个全局的指令.我们这里使用Vue.directi ...
- 02: vue.js常用指令
目录:Vue其他篇 01: vue.js安装 02: vue.js常用指令 目录: 1.1 vuejs简介 1.2 选择器:根据id.class等查找 1.3 静态绑定数据 data 1.4 插值 { ...
- vue.js常用指令
本文摘自:http://www.cnblogs.com/rik28/p/6024425.html Vue.js的常用指令 上面用到的v-model是Vue.js常用的一个指令,那么指令是什么呢? Vu ...
- 【Vue】vue.js常用指令
http://www.cnblogs.com/rik28/p/6024425.html Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会 ...
随机推荐
- 6.app架构基础
app架构,一个听起来高大尚的名字,很多小伙伴听到这个词语感觉很迷茫,不知道架构具体说的是啥?在q群里,"app后端应该怎么架构"这个问题被问了无数次.通过阅读本文,根据本人提出的 ...
- DDD实战进阶第一波(十一):开发一般业务的大健康行业直销系统(实现经销商代注册用例与登录令牌分发)
前两篇文章主要实现了经销商代注册的仓储与领域逻辑.经销商登录的仓储与相关逻辑,这篇文章主要讲述经销商代注册的用例与经销商登录的查询功能. 一.经销商代注册用例 在经销商代注册用例中,我们需要传递经销商 ...
- Java 学习笔记 (二) Selenium WebDriver Java 弹出框
下面这段实例实现了以下功能: 1. profile使用用户本地电脑上的 (selenium 3有问题.因为selenium 3把profile复制到一个temp文件夹里,但并不复制回去.所以每次打开仍 ...
- Java 读书笔记 (十五) Java 异常处理
捕获异常 使用try 和catch关键字可以捕获异常.try/catch 代码块放在异常可能发生的地方. try/catch 代码块中的代码称为保护代码 ,使用try/catch的语法如下: try ...
- 关于Kafka __consumer_offests的讨论
众所周知,__consumer__offsets是一个内部topic,对用户而言是透明的,除了它的数据文件以及偶尔在日志中出现这两点之外,用户一般是感觉不到这个topic的.不过我们的确知道它保存的是 ...
- 用java代码将从数据库中取出的具有父子关系的数据转成json格式
思路:①.取出数据中的所有父节点放入一个集合中②.取出数据中所有为该父节点的子节点放入另一个集合中③.用到迭代的方法将子节点一层一层的遍历工具类:package com.assasion.test;i ...
- I/O-----字节输入流
package io.day03; import java.io.FileInputStream; import java.io.InputStream; public class day03 { p ...
- BZOJ_2962_序列操作_线段树
Description 有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反数,3.Q a b c表示询问 ...
- BZOJ_2622_[2012国家集训队测试]深入虎穴_最短路
BZOJ_2622_[2012国家集训队测试]深入虎穴_最短路 Description 虎是中国传统文化中一个独特的意象.我们既会把老虎的形象用到喜庆的节日装饰画上,也可能把它视作一种邪恶的可怕的动物 ...
- 种树 BZOJ2151 模拟费用流
分析: 我们如果选择点i,那么我们不能选择i-1和i+1,如果没有这个限制,直接贪心就可行,而加上这个限制,我们考虑同样贪心,每次选择i后,将点i-1,i+1从双向链表中删除,并且将-a[i]+a[i ...