1.v-if&v-else&v-show

v-if用来判断是否加载html的DOM,v-if和v-else一般是一起用的。

v-show相当于display,DOM已经加载出来了,这个是判断它要不要显现出来

  1. <div id="app">
  2. <div v-if="isLogin">您好,CHENXQ</div>
  3. <div v-else>请登录后操作</div>
  4. <div v-show="isShow">CHENCHENYEAH</div>
  5. </div>
  6. <script type="text/javascript">
  7. var app=new Vue({
  8. el:'#app',
  9. data:{
  10. isLogin:true,
  11. isShow:false
  12. }
  13.  
  14. })
  15. </script>

2.v-for,这个主要是循环输出的问题,js里不是有for..in...循环么?这个跟那个类似,可以说是一样的,只是写法有些许的不同,这个可以让一个数组直接输出

  1. <li v-for="item in items">
  2. {{item}}
  3.  
  4. </li>
  5. <script type="text/javascript">
  6. var app=new Vue({
  7. el:'#app',
  8. data:{
  9. items:[12,34,56,2,8,90],
  10. }
  11. });
  12. </script>

也可以对这个数组进行排序后输出,需要注意的是此时的排序的数组需要在computed重新声明,computed相当于属性的一个实时计算,如果实时计算里关联了对象,那么当对象的某个值改变的时候,同时会实时计算

  1. <div id="app">
  2. <ul>
  3. <li v-for="item in sortItems">
  4. {{item}}
  5.  
  6. </li>
  7. </ul>
  8.  
  9. </div>
  10. <script type="text/javascript">
  11. var app=new Vue({
  12. el:'#app',
  13. data:{
  14. items:[12,34,56,2,8,90],
  15.  
  16. },
  17. computed:{
  18. sortItems:function(){
  19. return this.items.sort(sortNumber);
  20. },
  21.  
  22. }
  23. });
  24. function sortNumber(a,b){
  25. return a-b;
  26. }
  27.  
  28. </script>

以上是对纯数字数组的一个排序,数组对象的排序如下:

  1. <div id="app">
  2. <ul>
  3. <li v-for="item in sortItems">
  4. {{item}}
  5.  
  6. </li>
  7. </ul>
  8. <div v-for="(student,index) in sortStudents">
  9. {{index+1}}: {{student.name}} :{{student.age}}
  10. </div>
  11.  
  12. </div>
  13. <script type="text/javascript">
  14. var app=new Vue({
  15. el:'#app',
  16. data:{
  17. items:[12,34,56,2,8,90],
  18. students:[
  19. {name:'chenxq', age:21,subject:'English'},
  20. {name:'cxq',age:18,subject:'science'},
  21. {name:'Shaquila',age:24,subject:'math'},
  22. {name:'fengmo',age:7,majorin:'tecent'}
  23.  
  24. ]
  25.  
  26. },
  27. computed:{
  28. sortItems:function(){
  29. return this.items.sort(sortNumber);
  30. },
  31. sortStudents:function(){
  32. return sortByKey(this.students,'age');
  33. }
  34.  
  35. }
  36. });
  37. function sortNumber(a,b){
  38. return a-b;
  39. }
  40. //数组对象方法排序:
  41. function sortByKey(array,key){
  42. return array.sort(function(a,b){
  43. var x=a[key];
  44. var y=b[key];
  45. return((x<y)?-1:((x>y)?1:0));
  46. });
  47. }
  48.  
  49. </script>

3.v-bind 处理html中的标签属性,可以直接绑定标签中的属性,也可以绑定style,以及绑定class样式,简写“:”

  1. <div id="app">
  2. <img v-bind:src="imgSrc" width="400px" height="200px"/>
  3.  
  4. <a :href="webUrl" target="_blank">技术胖</a>
  5. <div :class="className" width="200px" height="200px">
  6. 1.div绑定class
  7. </div>
  8. <div :class="{classA:isTrue}" width="200px" height="200px">
  9. 2.div绑定class中的判断
  10. </div>
  11. <div :class="[classA,classB]" width="200px" height="200px">
  12. 3.div绑定class中的数组判断
  13. </div>
  14. <div :class="isTrue?classA:classB" width="200px" height="200px">
  15. 4.div绑定class中的三元运算符
  16. </div>
  17. <hr>
  18. <div>
  19. <input type="checkbox" id="isTrue" v-model="isTrue">
  20. <label for="isTrue">isTrue={{isTrue}}</label>
  21. </div>
  22. <hr>
  23. <div :style="{color:red,fontSize:font}">
  24. 5.div绑定style.
  25. </div>
  26. <div :style="styleObject">6.绑定style对象</div>
  27.  
  28. </div>
  29.  
  30. <script type="text/javascript">
  31. var app=new Vue({
  32. el:'#app',
  33. data:{
  34. imgSrc:'http://jspang.com/wp-content/uploads/2017/02/vue01-2.jpg',
  35. webUrl:'http://jspang.com',
  36. className:'classA',
  37. isTrue:false,
  38. classA:'classA',
  39. classB:'classB',
  40. red:'red',
  41. font:'20px',
  42. styleObject:{
  43. color:'green',
  44. fontSize:'24px'
  45. }
  46.  
  47. }
  48. })
  49. </script>

4.v-model把数据绑定在特定的表单元素上,实现双向绑定

  1. <div id="app">
  2. <p>原始文本信息{{message}}my name is chenxq</p>
  3. <h3>文本框</h3>
  4. <p>v-model:<input type="text" v-model="message"></p>
  5. <p>v-model.lazy:<input type="text" v-model.lazy="message"></p>
  6. <p>v-model.number:<input type="text" v-model.number="message"></p>
  7. <p>v-model.trim:<input type="text" v-model.trim="message"></p>
  8. <hr>
  9. <h3>文本域</h3>
  10. <textarea name="" id="" cols="30" rows="10" v-model="message"></textarea>
  11. <hr>
  12. <h3>多选框绑定一个值</h3>
  13. <input type="checkbox" id="isTrue" v-model="isTrue">
  14. <label for="isTrue">{{isTrue}}</label>
  15. <hr>
  16. <h3>多选框绑定一组值</h3>
  17. <p>
  18. <ol>
  19. <li><input type="checkbox" id="javascript" value="javscript" v-model="webnames">
  20. <label for="isTrue">javascript</label>
  21. </li>
  22. <li><input type="checkbox" id="python" value="python" v-model="webnames">
  23. <label for="isTrue">python</label>
  24. </li>
  25. <li>
  26. <input type="checkbox" id="java" value="java" v-model="webnames">
  27. <label for="isTrue">java</label>
  28. </li>
  29. <li>
  30. <input type="checkbox" id="angular" value="angular" v-model="webnames">
  31. <label for="isTrue">angular</label>
  32. </li>
  33. <li>
  34. <input type="checkbox" id="jquery" value="jquery" v-model="webnames">
  35. <label for="isTrue">jquery</label>
  36. </li>
  37. </ol>
  38. </p>
  39. <p>
  40. {{webnames}}
  41. </p>
  42. <hr>
  43. <h3>单选框绑定</h3>
  44. <p>
  45. <input type="radio" id="one" value="male" v-model="sex">
  46. <label for="one">male</label>
  47. <input type="radio" id="two" value="female" v-model="sex">
  48. <label for="two">female</label>
  49. <p>您选择的性别是:{{sex}}</p>
  50. </p>
  51.  
  52. </div>
  53. <script type="text/javascript">
  54. var app=new Vue({
  55. el:'#app',
  56. data:{
  57. message:'v-model',
  58. isTrue:true,
  59. webnames: [],
  60. sex:'male'
  61. }
  62. })
  63. </script>

5.v-on 绑定事件监听器,触发一些事件,简写“@”

  1. <div id="app">
  2. 本场比赛得分:{{score}}
  3. <p><button v-on:click="add">加分</button>
  4. <button @click="sub">减分</button><br />
  5. <input type="text" v-on:keyup.enter="onEnter" v-model="score2">
  6. </p>
  7. </div>
  8. <script type="text/javascript">
  9. var app=new Vue({
  10. el:'#app',
  11. data:{
  12. score:0,
  13. score2:1
  14. },
  15. methods:{
  16. add:function(){
  17. this.score++;
  18. },
  19. sub:function(){
  20. this.score--;
  21. },
  22. onEnter:function(){
  23. this.score=this.score+parseInt(this.score2);
  24. }
  25.  
  26. }
  27.  
  28. })
  29. </script>

键盘事件可以用数字来表示,相关按键对应的数字:

6.v-pre&v-cloak&v-once

v-pre就是在模板中跳过vue的编译,直接输出原始值。就是在标签中加入v-pre就不会输出vue中的data值了。

v-cloak在vue渲染完指定的整个DOM后才进行显示。它必须和CSS样式一起使用。

v-once在第一次DOM时进行渲染,渲染完成后视为静态内容,跳出以后的渲染过程。

7.v-text&v-html

v-text,就是解决当我们网速很慢或者javascript出错时,{{xxx}}会暴露的问题。

如果在javascript中写有html标签,用v-text是输出不出来的,这时候我们就需要用v-html标签了。双大括号会将数据解释为纯文本,而非HTML。为了输出真正的HTML,需要使用v- html 指令.

需要注意的是:在生产环境中动态渲染HTML是非常危险的,因为容易导致XSS攻击。所以只能在可信的内容上使用v-html,永远不要在用户提交和可操作的网页上使用.

 

VUE学习——vue的内部指令学习(趁自己没忘,学习记录一下)的更多相关文章

  1. vue学习-day02(自定义指令,生命周期)

    目录: 1.案例:品牌管理    2.Vue-devtools的两种安装方式    3.过滤器,自定义全局或私有过滤器    4.鼠标按键事件的修饰符    5.自定义全局指令:让文本框获取焦点   ...

  2. vue第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法)

    第四单元(初识vue-在页面中直接引入vue框架-学习使用vue语法-vue的指令-介绍data用法-methods用法) #课程目标 了解 vue 框架的特点 掌握创建 vue 实例 掌握 data ...

  3. [前端学习]vue的指令学习记录 vu-if | text | for | on | model | bind | pre

    vue的指令学习记录 vue-if | text | for | on | model - 目录 vue的指令学习记录 vue-if | text | for | on | model ... 预备 ...

  4. 从零开始学习Vue.js,学习笔记

    一.为什么学习vue.js methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节. vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn ...

  5. Vue基础(环境配置、内部指令、全局API、选项、内置组件)

    1.环境配置 安装VsCode 安装包管理工具:直接下载 NodeJS 进行安装即可,NodeJS自带 Npm 包管理工具,下载地址:https://nodejs.org/en/download/安装 ...

  6. 学习Vue 入门到实战——学习笔记

    闲聊: 自从进了现在的公司,小颖就再没怎么接触vue了,最近不太忙,所以想再学习下vue,就看了看vue相关视频,顺便做个笔记嘻嘻. 视频地址:Vue 入门到实战1.Vue 入门到实战2 学习内容: ...

  7. 【VUE】VUE相关学习和知识备份

    一.学习资料参考 1.1.Vue.js 官网:Vue.js https://cn.vuejs.org/ 官方文档:介绍 - Vue.js https://cn.vuejs.org/v2/guide/ ...

  8. 学习vue就是那么简单,一个简单的案例

    vue是前端兴起的一个javascript库,相信大家都使用过jQuery,虽然vue和jQuery没有可比性,但从熟悉的角度去理解新的东西或许会容易接受一些,有时候由于思想和模式的转变会带来阵痛,但 ...

  9. 手牵手,从零学习Vue源码 系列一(前言-目录篇)

    系列文章: 手牵手,从零学习Vue源码 系列一(前言-目录篇) 手牵手,从零学习Vue源码 系列二(变化侦测篇) 手牵手,从零学习Vue源码 系列三(虚拟DOM篇) 陆续更新中... 预计八月中旬更新 ...

  10. 学习vue.js 第一天

    最近听到很多人都在用Vue.js ,我也想凑凑热闹,来个入门 啥的 ,要不以后人家说,啥都不知道,多low 看到官网 是这样介绍Vue.js Vue.js(读音 /vjuː/, 类似于 view) 是 ...

随机推荐

  1. Intelij Idea 2016.3.4激活

    https://www.haxotron.com/jetbrains-intellij-idea-crack-123/ http://idea.lanyus.com/

  2. Oracle10G各版本下载以及补丁地址

    Oracle Database 10g Release 2 (10.2.0.1.0) Enterprise/Standard Edition for Microsoft Windows (32-bit ...

  3. 为datanode配置多个数据存储地

    datanode配置多个数据存储地址,涉及到以下两个配置项 dfs.name.dir Determines where on the local filesystem the DFS name nod ...

  4. CocoaPods 安装相关问题

    (1)pod install还是pod update都卡在Analyzing dependencies不动. 解决方法: 其实原因在于以上两个命令执行时会升级CocoaPods的spec仓库,加一个参 ...

  5. linux/unix下 pid文件作用浅析

    l在linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件.而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件.那么这些pid文件有什么作用呢?它的内 ...

  6. 基于 Laravel 5 构建的、支持模块化和多语言的 CMS —— AsgardCMS

    1.简介 AsgardCMS 是基于 Laravel 5 构建的.支持模块化和多语言的CMS. 官网:https://asgardcms.com/ Github:https://github.com/ ...

  7. qunar面试题及一位大牛的解答

    本文摘自:http://www.cnblogs.com/jarson-7426/p/3989208.html 1.写一个函数padstare(string str1,min_lenthg,string ...

  8. .NETFramework:Stream

    ylbtech-.NETFramework:Stream 1.返回顶部 1. #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, Publi ...

  9. gdb调试带参数的程序 (转载)

    转自:http://www.cnblogs.com/rosesmall/archive/2012/04/10/2440514.html 一般来说GDB主要调试的是C/C++的程序.要调试C/C++的程 ...

  10. Cg profiles,如何使用CGC编译Cg语言(转)

    抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 计算机只能理解和执行由0.1序列(电压序列 ...