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元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会 ...
随机推荐
- 你不知道的JavaScript--Item14 使用prototype的几点注意事项
1.在prototype上保存方法 不使用prototype进行JavaScript的编码是完全可行的,例如: function User(name, passwordHash) { this.nam ...
- 玩转spring mvc(四)---在spring MVC中整合JPA
关于在Spring MVC中整合JPA是在我的上一篇关于spring mvc基本配置基础上进行的,所以大家先参考一下我的上一篇文章:http://blog.csdn.net/u012116457/ar ...
- Github管理自己的代码-远程篇
一.名词解释 Git Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版 ...
- 基于opencv3.0和下的条形码与二维码识别
其中对条码与二维码的识别分为以下4个步骤 1. 利用opencv和Zbar(或者Zxing)对标准的条形码图片(即没有多余背景干扰,且图片没有倾斜)进行解码,将解码信息显示出来,并与原始信息对比. 2 ...
- Java元编程及其应用
首先,我们且不说元编程是什么,他能做什么.我们先来谈谈生产力. 同样是实现一个投票系统,一个是python程序员,基于django-framework,用了半小时就搭建了一个完整系统,另外一个是标准的 ...
- go语言 nsq源码解读三 nsqlookupd源码nsqlookupd.go
从本节开始,将逐步阅读nsq各模块的代码. 读一份代码,我的思路一般是: 1.了解用法,知道了怎么使用,对理解代码有宏观上有很大帮助. 2.了解各大模块的功能特点,同时再想想,如果让自己来实现这些模块 ...
- java集合框架之HashMap
参考http://how2j.cn/k/collection/collection-hashmap/365.html#nowhere HashMap的键值对 HashMap储存数据的方式是-- 键值对 ...
- Django之META与前后端交互
Django之META与前后端交互 1 提交表单之GET 前端提交数据与发送 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收GET请求数据 2)接收POST请求数据 3)响应请 ...
- MIPCache 域名升级
一.MIPCache URL 是什么 举个例子,MIP 官网的 URL 为: https://www.mipengine.org 对应的 MIPCache 的 URL 为: https://mipca ...
- go语言视频教程和电子书下载
golang视频教程: https://noxue.com/p/399809259943301 go语言 pdf电子书: Design Pattern In Go[go语言设计模式].pdf Go P ...