1)v-text:基本同{{}} 2)v-html:能够解析html语法的内容 3)v-on: v-on:事件="方法" => 系统传参,只默认传$event v-on:事件="方法($event, ...)" => 彻底自定义传参,能够手动传入$event
* 1) v-* 是vue指令,会被vue解析,v-text="num"中的num是变量(指令是有限的,不能够自定义) * 2)v-text:是原样输出渲染内容,渲染控制的标签自身内容会被替换掉(<p v-text="num">123</p>会被num替换) * 3)v-html:能够解析渲染html语法的内容 * 4) v-once:控制的标签只能被赋值一次
<div id="app"> <!-- 插值表达式 --> <p>{{ msg }}</p> <!-- eg:原文本会被msg替换 --> <p v-text='msg'>原文本</p> <!-- 能够解析带html标签的文本信息 --> <p v-html='msg'></p> <!-- v-once控制的标签只能被赋值一次 --> <p v-once>{{ msg }}</p> </div> <script type="text/javascript"> // 指令: 出如今html标签中能够被vue解析处理的全局属性 new Vue({ el: "#app", data: { msg: "message" } }) </script>
<style type="text/css"> [v-cloak] { display: none; } </style> <div id="app" v-cloak> {{ msg }} </div> <script src="js/vue.min.js"></script> <script type="text/javascript"> new Vue({ el: "#app", data: { msg: "message" } }) </script> <!-- 避免页面闪烁-->
<!-- 给自定义全局属性绑定变量 --> <p v-bind:abc="abc"></p> <!-- 以原字符串形式绑定全局属性 --> <p v-bind:title="'abc'"></p> <!-- 单类名绑定 --> <p v-bind:class="c1"></p> <!-- 多类名绑定 --> <p v-bind:class="[c2, c3]"></p> <!-- 类名状态绑定 --> <p v-bind:class="{c4: true|false|var}"></p> <!-- 多类名状态绑定 --> <p v-bind:class="[{c5: true}, {c6: flase}]"></p> <!-- 样式绑定 --> <div :style="div_style"></div> <div :style="{width: '100px', height: '100px', backgroundColor: 'blue'}"></div> <script type="text/javascript"> new Vue({ el:"#app", data: { abc: "abc", c1: "p1", c2: "p2", c3: "p3", div_style: { width: "200px", height: "200px", backgroundColor: "cyan" } } }) </script> <!-- v-bind: 指令能够简写为 : -->
<!-- v-on: 指令 简写 @ --> <!-- 不传参事件绑定,但事件回调方法能够获取事件对象 --> <p @click="fn"></p> <!-- ()能够传入具体实参 --> <p @click="fn()"></p> <!-- ()状况下,事件对象应该显式传入 --> <p @click="fn($event)"></p>
""" /** * 1、数据驱动 * 1)操做是一个功能,使用须要一个方法来控制 2)方法名是变量,因此控制变量就能够控制该方法 * * * 2、事件指令 * 1)在实例成员methods中声明事件方法 * 2)标签经过事件指令绑定声明的方法: v-on:事件名="事件方法名" * eg: <button v-on:click="btnClick">按钮</button> * 3)标签经过事件指令绑定声明的方法,且自定义传参: v-on:事件名="事件方法名()" * eg: <button v-on:click="btnClick()">按钮</button> 不传任何参数 * eg: <button v-on:click="btnClick($event)">按钮</button> 传入事件对象,同不写() * eg: <button v-on:click="btnClick(10)">按钮</button> 只传入自定义参数,固然也能够传入事件对象 */ """
<body> <div id="app"> <button v-on:click="btnClick">{{ btn1 }}</button> <button v-on:click="btnClick">{{ btn2 }}</button> <hr> <!-- 直接绑定事件名:系统会在触发事件时(点击时)调用事件方法(fn1),传给事件方法一个参数(事件对象) --> <button v-on:click="fn1">按钮3</button> <!-- 绑定的事件名后跟着(),不是主动调用事件方法,而是表示在触发事件调用时,传入的参数全由用户本身决定 --> <button v-on:click="fn2($event, 10, 20)">按钮4</button> <hr> <button v-on:click="fn(btn1)">{{ btn1 }}</button> <button v-on:click="fn(btn2)">{{ btn2 }}</button> </div> </body> <script src="js/vue.js"></script> <script> // 对比DOM驱动:1)js选择器获取目标标签 2)为目标标签绑定事件 3)在事件中完成相应逻辑 // var btn = document.getElementsByTagName('button')[0]; // btn.onclick = function () { // console.log(111111111111); // }; new Vue({ el: '#app', data: { btn1: '按钮1', btn2: '按钮2', }, methods: { btnClick () { console.log(666) }, fn1 (ev) { console.log(ev.clientX, ev.clientY); }, fn2(ev, n1, n2) { console.log(ev, n1, n2); console.log(ev.clientX, ev.clientY); }, fn (msg) { console.log(msg); } } }) </script>
1.普通对象与对象简写css
// 1)js没有字典类型,只有对象类型,对象能够彻底替代字典来使用 // 2)js中对象的属性名,都采用字符串类型,因此就能够省略字符串的引号标识 // 3)对象中属性值为函数时,称之为方法,方法建议简写: 方法名(){} // 4)若是对象的属性值是一个变量,且变量名与属性名相同,还能够简写:{属性,} var dic_obj = { // 属性:值(数值,函数) 'name': 'Bob', 'eat': function () { console.log('在吃饭') } }; console.log(dic_obj.name, dic_obj['name']); dic_obj.eat(); dic_obj['eat'](); // 属性省略引号,方法简写 var obj = { name: 'Tom', eat () { console.log('在吃饭...') } }; console.log(obj.name, obj['name']); obj.eat(); obj['eat']() // 属性变量简写 var height = 180; var p = { height, name: 'Jerry', eat() {} }; console.log(p.name, p.height);
2.第一种类(了解)html
// 第一种声明类的方法 class People { constructor (name) { this.name = name } eat () { console.log(this.name + '在吃饭') } } let p1 = new People('Bob'); let p2 = new People('Tom'); console.log(p1.name, p2.name); p1.eat();
第二种类(了解)vue
// 第二种声明类的方法(难点):在函数内部出现了this语法,该函数就是类,不然就是普通函数 function Teacher(name) { this.name = name; this.eat =function () { console.log(this.name + '在吃饭') } } let t1 = new Teacher('Owen'); t1.eat();
类属性java
// 类属性:给类属性赋值,全部对象都能访问 function Fn() {} let f1 = new Fn(); let f2 = new Fn(); // 赋值类属性 Fn.prototype.num = 100; console.log(f1.num); console.log(f2.num); // 相似于单例 Vue.prototype.num = 1000; let v1 = new Vue(); let v2 = new Vue(); console.log(v1.num); console.log(v2.num);
js函数补充python
// 1)函数的形参与调用时传入的实参关系(你传你的,我收个人) // 传入和接受的参数个数不须要一致 // 可是必定按位进行赋值(没有关键字参数) // 没有接收的实参会被遗弃,没有被赋值的形参会被赋值为undefined function fn1(a, b) { console.log(a, b); return a + b; } let res = fn1(10, 20, 30); console.log(res); // 2)函数定义的演变 let fn2 = function (a, b) { return a + b; }; // 省略关键字的箭头函数 let fn3 = (a, b) => { return a + b; }; // 没有函数体,只有返回值的函数,能够省略做用域{},因为只有返回值,因此return也省略 let fn4 = (a, b) => a + b; console.log(fn4(11, 22)); // 若是形参只有一个时,声明参数的()也能够省略 let fn5 = num => num * num; console.log(fn5(3)); // 弱语言 console.log(10 + '5'); console.log(10 - '5'); console.log(+'55555');