vue 的 入门
el 的挂载点:
-
-
vue会管理el选项命中的元素以及内部的后代元素
-
可以使用其他的选择器,但是不建议使用ID选择器
-
-
-
data中可以写复杂类型的数据
-
1 <div id="app"> 2 {{message}} 3 <h2>{{school.name}}{{school.age}}</h2> 4 <ul> 5 <li>{{ campus[0] }}</li> 6 <li>{{ campus[1] }}</li> 7 <li>{{ campus[2] }}</li> 8 </ul> 9 </div>
<!-- 开发环境版本,包含了有帮助的命令行警告 --> 10 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 11 <script> 12 var app = new Vue({ 13 el:'#app', 14 data:{ 15 message:"hello vue", 16 school:{ 17 name:"柚子小哥哥", 18 age:"20" 19 }, 20 campus:['苏州','上海','北京'] 21 }, 22 }) 23 </script>
-
v-text 指令的作用就是:设置标签的内容(textContent)
-
1 <div id="app"> 2 <h2 v-text="message+'嘻嘻'"></h2> 3 <h2 v-text='info'></h2> 4 </div> 5 <!-- 开发环境版本,包含了有帮助的命令行警告 --> 6 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 7 <script> 8 var app = new Vue({ 9 el:"#app", 10 data:{ 11 message:"柚子小哥哥!!!", 12 info:"Hello vue" 13 } 14 }) 15 </script>
v-html
-
-
内容中有html结构会被解析为标签
-
1 <div id="app"> 2 <p v-html='content'></p> 3 <p v-text='content'></p> 4 </div> 5 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 6 <script> 7 var app = new Vue({ 8 el:"#app", 9 data:{ 10 content:"<a href='https://www.cnblogs.com/yjzs/'>柚子小哥哥的博客园</a> " 11 } 12 }) 13 </script>
-
-
事件名称不需要写on
-
指令可以简写为@
-
绑定的方法定义在 methods 属性中
-
方法的内部通过this关键子可以访问定义在data中数据
-
事件绑定的方法写成函数调用的形式,可以传递自定义参数
-
定义方法是需要形参来接受传入的实差参
-
事件的后面根上修饰符可以对事件进行限制
-
1 <div id="app"> 2 <input type="button" value="v-on指令" v-on:click="doIt" /> 3 <input type="button" value="v-on简写" @click="doIt" /> 4 <input type="button" value="双击事件" @dblclick="db" /> 5 <input type="text" @keyup.enter="say" /> 6 <p @click="changeFood">{{food}}</p> 7 </div> 8 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 9 <script> 10 var app = new Vue({ 11 el: "#app", 12 data: { 13 food: "柚子小哥哥!", 14 }, 15 methods: { 16 doIt: function () { 17 alert("绑定点击事件"); 18 }, 19 db: function () { 20 alert("绑定双击事件!"); 21 }, 22 changeFood: function () { 23 // console.log(this.food); 24 this.food += "好帅啊。"; 25 }, 26 say: function () { 27 alert("绑定回车事件!"); 28 }, 29 }, 30 }); 31 </script>
-
-
原理是修改元素的display实现显示隐藏
-
1 <div id="app"> 2 <input type="button" value="切换显示状态" @click="ChangeShow" /> 3 <input type="button" value="累加" @click="add" /> 4 <img v-show="isShow" src="./img//7735908_161703348144_2.jpg" alt="" /> 5 <img v-show="age>=18" src="./img//7735908_161703348144_2.jpg" alt="" /> 6 </div> 7 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 8 <script> 9 var app = new Vue({ 10 el: "#app", 11 data: { 12 isShow: false, 13 age: 17, 14 }, 15 methods: { 16 ChangeShow: function () { 17 this.isShow = !this.isShow; 18 }, 19 add: function () { 20 this.age++; 21 }, 22 }, 23 }); 24 </script>
-
-
本质是通过 DOM 元素老切换显示状态
-
1 <div id="app"> 2 <input type="button" @click="Show" value="切换显示" /> 3 // v-if 操作的是DOM树 4 <p v-if="isShow">柚子小哥哥</p> 5 // v-show操作的是样式 6 <p v-show="isShow">v-show</p> 7 <p v-show="like>10">不喜欢</p> 8 </div> 9 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 10 <script> 11 var app = new Vue({ 12 el: "#app", 13 data: { 14 isShow: false, 15 like:20 16 }, 17 methods: { 18 Show: function () { 19 this.isShow = !this.isShow; 20 }, 21 }, 22 }); 23 </script>
-
-
完整的写法是 v-bind 属性名
-
简写的话直接省掉v-bind ,只保留: 属性名
-
1 <div id="app"> 2 <img v-bind:src="imgSrc" alt="" /> 3 <br /> 4 <img 5 :src="imgSrc" 6 alt="" 7 :title="imgTitle" 8 :class="{Ac:Active}" 9 @click="Active" 10 /> 11 </div> 12 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 13 <script> 14 var app = new Vue({ 15 el: "#app", 16 data: { 17 imgSrc: "./img//7735908_161703348144_2.jpg", 18 imgTitle: "柚子小哥哥", 19 isActive: false, 20 }, 21 methods: { 22 Active: function () { 23 this.isActive = !this.isActive; 24 }, 25 }, 26 }); 27 </script>
-
-
数组经常v-for结合使用
-
语法是(item,index)in 数据
-
item 和 index 可以结合使用其他指令一起使用
-
1 <div id="app"> 2 <input type="button" value="增加数据" @click='add'> 3 <input type="button" value="移除数据" @click='rem'> 4 <ul> 5 <li v-for='(item,index) in arr'> 6 {{index+1}} {{item}} 7 </li> 8 </ul> 9 <h1 v-for=' item in age' v-bind:title='item.p'> 10 {{item.p}} 11 </h1> 12 </div> 13 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 14 <script> 15 var app = new Vue({ 16 el:"#app", 17 data:{ 18 arr:['广东','上海','苏州'], 19 age:[ 20 {p:"20"}, 21 {p:'30'}, 22 {p:"40"} 23 ] 24 }, 25 methods:{ 26 add:function(){ 27 this.age.push({p:'岁'}) 28 }, 29 rem:function(){ 30 this.age.shift() 31 } 32 } 33 }) 34 </script>
-
-
绑定的数据和表单值相关联
-
1 <div id="app"> 2 <input type="button" value="修改mesage" @click='Modifies' > 3 <input type="text" v-model='message' > 4 <h3>{{message}} </h3> 5 6 </div> 7 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 8 <script> 9 var app = new Vue({ 10 el:"#app", 11 data:{ 12 message:"柚子小哥哥" 13 }, 14 methods:{ 15 Modifies:function(){ 16 this.message='修改内容!' 17 } 18 } 19 }) 20 </script>
-
-
v-on 指令的作用是绑定事件,简写为@
-
方法中通过this,关键字获取data中的数据
-
v-text 指令的作用是:设置元素的文本值,简写为{{}}
-
1 <div id="app"> 2 <button @click="sub">-</button> 3 <span> {{num}} </span> 4 <button @click="add">+</button> 5 </div> 6 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 7 <script> 8 var app = new Vue({ 9 el: "#app", 10 data: { 11 num: 1, 12 }, 13 methods: { 14 add: function () { 15 // console.log('add') 16 if (this.num < 5) { 17 this.num++; 18 } else { 19 alert("最多点5下"); 20 } 21 }, 22 sub: function () { 23 // console.log('sub') 24 if (this.num > 0) { 25 this.num--; 26 } else { 27 alert("负数点不了"); 28 } 29 }, 30 }, 31 }); 32 </script>