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";
 }
 
 })
 
局部创建:
directives:{
}
 

vue的基本指令的更多相关文章

  1. 最简单的方式理解Vue的自定义指令与混合

    vue.js 自定义指令 钩子函数:bindinsertedupdatecomponentUpdatedunbind 钩子函数完整实例:html: <div id="hook-argu ...

  2. vue.js自定义指令入门

    Vue.js 允许你注册自定义指令,实质上是让你教 Vue 一些新技巧:怎样将数据的变化映射到 DOM 的行为.你可以使用Vue.directive(id, definition)的方法传入指令id和 ...

  3. Vue.js自定义指令的用法与实例

    市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲自定义指令的用法. 自定义指令是用来操作DOM的.尽管Vu ...

  4. vue 通过自定义指令实现 置顶操作;

    项目需求:要求当前项目每个页面滑到超出一屏的距离时,出现 backTop 按钮,点击则回到最顶端:俗称置顶操作: 因为涉及到的页面较多,每个页面都加肯定显得重复累赘,最终想到了 Vue 的自定义指令  ...

  5. Vue基础01vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令

    自学vue框架,每天记录重要的知识点,与大家分享!有不足之处,希望大家指正. 本篇将讲述:vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令 前期学习基础,使用vue. ...

  6. Vue(九) 自定义指令

    前面介绍了许多 Vue 内置的指令,比如 v-if.v-show等,这些丰富的指令能满足我们绝大部分的业务需求,不过在需要一些特殊功能时,我们仍然希望对 DOM 进行底层的操作,这时就要用到自定义指令 ...

  7. Vue.directive自定义指令

    Vue除了内部指令,我们也可以定义一些属于自己的指令,比如我们要定义一个v-diy的指令,作用就是让文字变成红色. 写好了这个功能,我们现在就自己定义一个全局的指令.我们这里使用Vue.directi ...

  8. 02: vue.js常用指令

    目录:Vue其他篇 01: vue.js安装 02: vue.js常用指令 目录: 1.1 vuejs简介 1.2 选择器:根据id.class等查找 1.3 静态绑定数据 data 1.4 插值 { ...

  9. vue.js常用指令

    本文摘自:http://www.cnblogs.com/rik28/p/6024425.html Vue.js的常用指令 上面用到的v-model是Vue.js常用的一个指令,那么指令是什么呢? Vu ...

  10. 【Vue】vue.js常用指令

    http://www.cnblogs.com/rik28/p/6024425.html Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会 ...

随机推荐

  1. javascript 面向对象程序设计--深刻理解对象

    javascript中,每个对象都是基于一个引用类型创建的,我们可以把ECMAScript 的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数. 深刻理解对象 创建自定义对象的最简单方式就 ...

  2. Linux下快速比较两个目录的不同

    曾多次想要在Linux下比较目录a和目录b中文件列表的差别,然后对目录a比目录b中多出的文件.少掉的文件分别做处理.但是,在网上搜索了多次也都没找到能直接处理好的工具. 所以想了很多不少方法,自我感觉 ...

  3. Linux 6.8 TFS(Taobao File System)使用文档-安装篇

    介绍  TFS(Taobao FileSystem)是一个高可扩展.高可用.高性能.面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据的存储:TFS使用C++语言开发,需要运行在64b ...

  4. Smokeping

    Smokeping允许你监测多台服务器. Smokeping使用RRDtool来存储数据,另外,其可基于RRDtool输出生成相应的统计图表. Smokeping由两个部分组成.一个运行在后台.定期收 ...

  5. ConnectionString 属性尚未初始化

    关于"ConnectionString 属性尚未初始化"的问题(如下图),      我在下面一段代码中发现了问题所在:   public bool ReturnFlag(stri ...

  6. Git详解及github与gitlab使用

    第一章 关于版本控制 第二章 GIT简介 第三章 GIT安装 第四章 初次运行GIT前配置 第五章 初始化仓库 第六章 GIT命令操作 第七章 GIT分支结构

  7. selenium IDE中log的保存与查看方法

    下载selenium IDE的log保存插件为File Logging(selenium IDE),下载安装方式如下: (1)打开firefox浏览器----点击右上角----附加组件---插件--- ...

  8. python 小练习题做起来

    1# 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并# (按字母顺序排列), 输出到一个新文件C中.with open('a') as f1: a=f1.read()with op ...

  9. java对象与Json字符串之间的转化(fastjson)

    1. 首先引入jar包 在pom.xml文件里加入下面依赖: <dependency> <groupId>com.alibaba</groupId> <art ...

  10. 开发人员必备工具 —— JMeter 压测

    在接口开发完以后,开发人员应该学会对自己的接口先进行压测一下,虽然压测的结果并不一定准确,也不能完全反映真实情况,但是如果有问题的话多少是可以看出的,而且也可以及早做优化,做到心里有底.否则,等测试进 ...