zoukankan      html  css  js  c++  java
  • vue指令示例合集

    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>
  • 相关阅读:
    记录下我的阿里云centos服务器之路
    git-ftp 用git管理ftp空间
    标准插件写法
    函数防抖 主要用于限制高频触发事件函数的执行间隔
    js 各进制前缀 及 转换
    微信 小程序 canvas
    微信 小程序 drawImage wx.canvasToTempFilePath wx.saveFile 获取设备宽高 尺寸问题
    canvas画布在主流浏览器中的尺寸限制
    js的一些坑,持续增加,学习js应该注意的问题
    js => ES6一个新的函数写法
  • 原文地址:https://www.cnblogs.com/hongdiandian/p/8469425.html
Copyright © 2011-2022 走看看