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元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会 ...
随机推荐
- Day1----Python学习之路笔记(1)
学习路线 Day1 Day2 Day3 Day4 Day5 ...待续 一.了解开发语言 1.高级语言:Python,Java,C++,C#,PHP,JS,Go,Ruby,SQL,Swift,Perl ...
- 转载:selenium webdriver定位不到元素的五种原因及解决办法
1.动态id定位不到元素for example: //WebElement xiexin_element = driver.findElement(By.id("_mail_c ...
- 我和Python的Py交易》》》》》》 浮点数的身世字谜
什么是浮点数? 在数据类型中写道,浮点数是带小数点的小数,这个概念是不准确的:浮点数是除了无限不循环小数之外的小数,也就是可以用分数表示的带小数点的数. 好了,浮点数就这些内容,讲完了,各回各家,各找 ...
- log4j java项目中的配置
第一步你需要 相关的jar包 第二歩你需要一个关于log4j的配置文件 第三歩 你需要一个检测用的java 文件 导入这两个jar包进你的项目中 commons-logging.jar log4j-1 ...
- postman接口测试举例情况
http请求:http请求分为请求头和请求体,get请求只有请求头没有请求体. 1.get请求 是可以直接在浏览器访问,不需要借助任何工具.好看一些,可以打开postman测试接口 http://xx ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Redis使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- Scala 开发遇到的坑
1. x.purchaseIntax.getOrElse(BigDecimal(0.00)) 可以直接写成 x.purchaseIntax.getOrElse(0)自动转换的 2. srcDataL ...
- gem安装redis库时报错
报错一: [root@Redis-1 software]# /usr/local/ruby/bin/gem install redis-3.2.2.gem ERROR: Loading command ...
- 想在京津冀地区找个UI&UE的工作靠啥?看看这篇博客
文章目的 本篇文章针对京津冀计算机专业应届毕业生,求职UI相关行业,提供数据参考. 本篇文章试用对象 UI相关培训机构 计算机设计相关培训机构 高职专科类学院计算机相关专业 就业参考网站 智联招聘 拉 ...
- java~springcloud微服务目录索引
回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考. java~springcloud微服务~目录索引 springcloud~服务注 ...