码迷,mamicode.com
首页 > 其他好文 > 详细

vue指令示例合集

时间:2018-02-25 17:20:32      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:iso   fat   使用   top   selected   v-cloak   www.   pre   show   

vue所有指令练习合集。这是个html文件,用chrome打开可查看结果。

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="UTF-8">
  <title>指令合集</title>
  <script src="https://cdn.jsdelivr.net/npm/vue"></script>
  <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>

  <style>
    .greenWord {
      color: green;
    }

    .wordSize {
      font-size: large;
      background-color: darkorange;
    }

    .redWord {
      color: red;
    }

    [v-cloak]{
      display: none;
    }
  </style>
</head>
<body>

<div id="app1">
  <!--绑定普通文本-->
  <h3>1、插值绑定</h3>
  <span v-text="msg"></span>
  <span>{{msg}}</span>

  <!--插入一段html源码 将源码渲染为DOM结构-->
  <h3>2、v-html 动态渲染html</h3>
  <div v-html="mhtml"></div>

  <!--v-show 原理:通过改变css的display决定是否显示元素;即不管v-show的值是true还是false,都会渲染完该节点下所有Dom-->
  <h3>3、v-show 条件渲染</h3>
  <span v-show="isshow">提莫队长现身啦</span>

  <!--真正的条件渲染,符合条件则渲染v-if的DOM结构,否则只渲染v-else指示的结构块-->
  <h3>4、v-if 使用</h3>
  <span v-if="isok">您是男士</span>
  <span v-else>您是女士</span>
  <span v-if="Math.random() < 0.3">概率小于0.3</span>
  <span v-else-if="Math.random() < 0.6 && Math.random()>=0.3">概率0.3~0.5</span>
  <span v-else>概率大于50%</span>

  <!--for循环插值-->
  <h3>5、v-for vue循环</h3>
  <div v-for="item in items">{{item}}</div>
  <div v-for="item in items2">{{item.name}}>>>{{item.age}}</div>

  <!--给节点添加事件处理功能-->
  <h3>6、v-on 事件处理器</h3>
  <button v-on:click="chgColor" id="btn1">雨中的彩虹</button>
  <button v-on:click.right="rightAlert">右击选择</button>
  <button v-on:click.stop="stopEvent($event)">停止冒泡</button>
  <button v-on:click="count +=1">加法:{{count}}</button>

  <!--给元素绑定class属性-->
  <h3>7、v-bind 绑定class</h3>
  <span v-bind:class="{greenWord : isActive}">快给我披上色彩吧</span>
  <span v-bind:class="classObj">却从没有感觉,我无地自容</span>
  <span v-bind:class="[redWord]">绑定数组类</span>

  <!--给元素绑定内联style-->
  <h3>8、绑定内联样式</h3>
  <span v-bind:style="{color:‘#66cc66‘,fontSize:20+‘px‘}">内联样式 对象语法</span>
  <span v-bind:style="styleObj">内联样式>>>对象语法</span>
  <span v-bind:style="[styleObj]">内联样式>>>数组语法</span>

  <!--绑定一个html属性,自定义的也可以-->
  <h3>9、绑定一个属性</h3>
  <img v-bind:src=" ‘./logo.png‘ "/>
  <div v-bind:title="mtitle">红红火火恍恍惚惚</div>
  <div v-bind:data-mid="mid">测试绑定mid</div>

  <!--处理表单 憋说话 怒吃你的语法糖-->
  <h3>10、v-model 表单控件或者组件上创建双向绑定</h3>
  <input v-model="message" placeholder="edit me">
  <p>单行信息:{{message}}</p>
  <textarea v-model="info" placeholder="add multiple lines"></textarea>
  <p style="color: darkorange">多行信息:{{info}}</p>
  <input type="checkbox" id="checkbox" v-model="checked">
  <label for="checkbox">单个复选框:{{checked}}</label>
  <h4>多个复选框</h4>
  <div>
    <input type="checkbox" id="jack" value="jack" v-model="checkNames">
    <label for="jack">jack</label>
    <input type="checkbox" id="jack2" value="jack2" v-model="checkNames">
    <label for="jack2">jack2</label>
    <input type="checkbox" id="jack3" value="jack3" v-model="checkNames">
    <label for="jack3">jack3</label>
    <span>checked names:{{checkNames}}</span>
  </div>
  <h4>单选框</h4>
  <input type="radio" id="one" value="one" v-model="picked">
  <label for="one">one</label>
  <span>您的选择:{{picked}}</span>
  <h4>选择框</h4>
  <select v-model="selected">
    <option>111</option>
    <option>222</option>
    <option>333</option>
  </select>
  <span>您的选择:{{selected}}</span>
  <!--语法糖 有点甜 方便一丢丢-->
  <select v-model="mselect">
    <option v-for="option in options" v-bind:value="option.value">
      {{option.text}}
    </option>
  </select>
  <span>您的选择:{{mselect}}</span>

  <!--很少用到这个-->
  <h3>11、v-pre 跳过该元素和其子元素编译过程</h3>
  <span v-pre>{{@@@@@@@@@@@@@@@@@@@@@@}}</span>

  <!--现象:在vue编译结束中,界面可能会闪现一下Mustach符号,很丑。加上这个指令可以有效地阻止这种情况发生,永葆优雅。-->
  <h3>12、v-lock 该实例编译结束后,解除该指令绑定</h3>
  <div v-cloak>{{message}}</div>

  <!--少用-->
  <h3>13、v-once 只渲染元素和组件一次</h3>
  <span v-once>我只更新一次:{{once}}</span>
  <span>不加v-once:{{once}}</span>

</div>

</body>

<script>
  var app1 = new Vue({
    el: #app1,
    data: {
      msg: 插值测试,
      mhtml: <span style="color: palevioletred">巴啦啦小魔仙</span>,
      isshow: true,
      isok: true,
      items: ["林徽因", "陆小曼", "张爱玲"],
      items2: [{name: "徐志摩", age: "28"}, {name: 梁思成, age: 26}, {name: 金岳霖, age: 30}],
      count: 0,
      isActive: false,
      error: null,
      classObj: {
        greenWord: true,
        wordSize: true
      },
      redWord: redWord,
      styleObj: {
        color: #00eeff,
        fontSize: 30
      },
      message:‘‘,
      info:‘‘,
      checked:true,
      checkNames:[],
      picked:‘‘,
      selected:‘‘,
      options:[{text:犬次郎,value:QCL},{text:道格森二世,value:DGS}],
      mselect:‘‘,
      once:渲染2次,
      mtitle:title-property,
      mid:123456
    },
    methods: {
      chgColor: function () {
        $("#btn1").css(color, "#cc66cc")
        $(#btn1).text(我变成了粉红色)
      },
      rightAlert: function () {
        alert("您点击了鼠标右键")
      },
      stopEvent: function (event) {
        alert("event:" + event.target.tagName)

      }
    },
    computed: {
      classObj: function () {
        return {
          greenWord: this.isActive && !this.error,
          wordSize: this.error && this.error.type === fatal
        }
      }
    }
  })
</script>
</html>

 

vue指令示例合集

标签:iso   fat   使用   top   selected   v-cloak   www.   pre   show   

原文地址:https://www.cnblogs.com/hongdiandian/p/8469425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!