Vue.js学习笔记

v-bind

绑定属性,代码:

  • v-bind:href
  • v-bind:src
  • v-bind:class
var app3 = new Vue({    el: '#app3',    data: {        target_location: 'https://baidu.com',        target_name: '百度一下',        img_location: '../img/bing-0615.jpeg',        isActive: true    }});
<!doctype html><html lang="zh-cn"><head>    <meta charset="UTF-8">    <meta name="viewport"          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>v-bind的使用</title>    <style>        .active {            background-color: #00b3ee;        }    </style></head><body><div id="app3">    跳转到 <a v-bind:href="target_location" target="_blank">{{target_name}}</a><br>    <a :class="{active: isActive}">Click me!</a>    图片:    <img alt="沙丘上的日落" v-bind:src="img_location"/></div><script src="../lib/vue.js"></script><script src="../js/main.js"></script></body></html>

v-on

绑定动作:代码

  • v-on.prevent
var app4 = new Vue({    el: '#app4',    data: {},    methods: {        onEnter: function () {            console.log("mouse enter");        },        onLeave: function () {            console.log("mouse leave");        },        onSubmit: function () {            console.log("已经提交!");        }    }});
<!doctype html><html lang="zh-cn"><head>    <meta charset="UTF-8">    <meta name="viewport"          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>v-on的使用</title></head><body><div id="app4">    <form @keyup.enter="onEnter" v-on:submit.prevent="onSubmit">        <!-- prevent:抑制默认行为 -->        <input type="text"/>        <button type="submit">提交</button>    </form>    <button v-on="{mouseenter: onEnter, mouseleave: onLeave}">测试按钮</button></div><script src="../lib/vue.js"></script><script src="../js/main.js"></script></body></html>

v-model

绑定数据:

  • v-model.trim
  • v-model.number
  • v-model.lazy
  • input
  • select
  • textarea
var app5 = new Vue({    el: '#app5',    data: {        name: 'wang',        price: 22,        sex: 'M',        hobby: [],        from:1    }});
<!doctype html><html lang="zh-cn"><head>    <meta charset="UTF-8">    <meta name="viewport"          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>v-model的使用</title></head><body><div id="app5">    <input type="text" v-model.trim="name"><br>    <pre>{{name}}</pre>    <span>{{name}}</span>    <input type="text" v-model.number="price"><br>    <span>{{price}}</span>    男    <input v-model="sex" value="F" type="radio">    女    <input v-model="sex" value="M" type="radio">\    {{sex}}    男    <input v-model="hobby" value="F" type="checkbox">    女    <input v-model="hobby" value="M" type="checkbox">\    {{hobby}}    <br>    <textarea></textarea>    <select v-model="from" multiple>        <option value="1">第一</option>        <option value="2">第二</option>    </select>    {{from}}</div><script src="../lib/vue.js"></script><script src="../js/main.js"></script></body></html>

》》》Vue.js表单输入绑定

流程控制和计算属性

  • v-if
  • v-else-if
  • v-else
  • computed
var app7 = new Vue({    el: '#app7',    data: {        role: 'hr-min',        math: 90,        Chinese: 100,        English: 80,    },    computed: {        sum: function () {            return this.math + this.Chinese + this.English;        },        average: function () {            return Math.round(this.sum / 3);        }    }});
<!doctype html><html lang="zh-cn"><head>    <meta charset="UTF-8">    <meta name="viewport"          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Vue.js流程控制</title></head><body><div id="app7">    <div v-if="role == 'admin'">        管理员你好!    </div>    <div v-else-if="role == 'hr' || role == 'hr-min'">        人事你好!    </div>    <div v-else>        当前角色没有访问权限!    </div>    <br>    <table border="1">        <thead>        <tr>            <td>学科</td>            <td>成绩</td>        </tr>        </thead>        <tbody>        <tr>            <td>数学</td>            <td><input type="text" v-model.number="math"></td>        </tr>        <tr>            <td>语文</td>            <td><input type="text" v-model.number="Chinese"></td>        </tr>        <tr>            <td>英语</td>            <td><input type="text" v-model.numer="English"></td>        </tr>        <tr>            <td>总分</td>            <td>{{sum}}</td>        </tr>        <tr>            <td>平均分</td>            <td>{{average}}</td>        </tr>        </tbody>    </table></div><script src="../lib/vue.js"></script><script src="../js/main.js"></script></body></html>