vue上手步骤
<body><!-- vue2语法 --><!-- 1.准备容器:一会vue就会把数据展示到这里 --><div id="app"><!-- 4.使用{{ }}即可显示数据 ,{{}}就是插值表达式--><p>姓名:{{uname}}</p><p>朋友:{{friend.sex,friend.uname}}</p></div><!--2. 导入vue.js --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>// 3.创建vue实例对象new Vue({el: '#app',//你要把数据展示到哪个元素里data: {// 这里放要展示的数据uname: 'zf',age: 30,friend: {sex: '男',uname: '齐齐'}},})</script></body>
插值表达式{{}}
Vue指令(查看菜鸟的模板语法)
v-html指令
指令:带有v-前缀的特殊标签属性
Vue会根据不同的指令,针对标签实现不同的功能
举例
<div v-html="str"></div> 相当于div对象.innHTML=str
<!-- vue2语法 --><!-- 1.准备容器:一会vue就会把数据展示到这里 --><div id="app"><p>{{str}}</p><p v-html="str">被覆盖</p></div><!--2. 导入vue.js --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>// 3.创建vue实例对象const app = new Vue({el: '#app',//你要把数据展示到哪个元素里data: {str: '你是一个<strong>优秀</strong>的boy'},})</script>
v-show vs v-if
v-if和v-else-if和v-else指令
<!-- vue2语法 --><!-- 1.准备容器:一会vue就会把数据展示到这里 --><div id="app"><p v-if="sex===1">性别:男</p><p v-else>性别:女</p><hr><p v-if="sorce>=90">成绩:A</p><p v-else-if="sorce>=80&&sorce<90">成绩:B</p><p v-else-if="sorce>=60&&sorce<80">成绩:C</p><p v-else>成绩:D</p></div><!--2. 导入vue.js --><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>// 3.创建vue实例对象const app = new Vue({el: '#app',//你要把数据展示到哪个元素里data: {sex: 1,//1男,2女sorce: 65 //分数},})</script>
v-on(注册事件)
在所有的方法中this永远指向vue的实例对象
<!-- vue2语法 --><!-- 1.准备容器:一会vue就会把数据展示到这里 --><div id="app"><button v-on:click="count++">+1</button><p>{{count}}</p><button v-on:click="count--">-1</button><button @click="fn">点击+10</button></div><!--2. 导入vue.js --><script src="../utils/vue.js"></script><script>// 3.创建vue实例对象const app = new Vue({el: '#app',//你要把数据展示到哪个元素里data: {count: 1,},methods: { // 提供处理逻辑函数// 在所有的方法中。this永远表示vue的实例对象fn() {this.count = this.count + 10},// 方法名2}})</script>
调用v-on指令传参
<button @click="fn(实参1,实参2)">点击+10</button
methods: { // 提供处理逻辑函数// 在所有的方法中。this永远表示vue的实例对象fn(a,b) {this.count = this.count + 10},}
v-on事件对象(对标js事件委托时的e)
<div id="app"><h2>需要,在输入框中输入内容,将内容显示到p标签中</h2><!-- 1️⃣如果在模板(页面中)使用事件对象,可以使用$event(固定语法) --><input type="text" @input="result1=$event.target.value"><p>{{result1}}</p><hr><input type="text" @input="fn">//3️⃣如果函数中传递多个参数,则使用$event传递e// <input type="text" @input="fn(1,2,$event)"><p>{{result2}}</p></div><script src="../utils/vue.js"></script><script>const app = new Vue({el: '#app',data: {result1: '',result2: ''},methods: {fn(e) {// 2️⃣如果在js中使用事件对象,还是使用事件处理函数的形参ethis.result2 = e.target.value}}})</script>
v-bind(v-bind:可简写为:)
作用:动态的设置html的标签属性-> src、url、title …
语法:v-bind:属性名=“表达式”
v-for
1.作用:基于数据循环,多次渲染整个元素
v-for中的key(必须加)
key的作用:给元素添加的唯一标识,便于Vue进行列表项的正确排序复用
<li v-for="item in arr" :key="key值不能重复"></li>
注意点:
1.key的值只能是字符串或数字类型
2.key的值必须具有唯一性
3.推荐使用id作为key(唯一),不推荐使用index作为key(会变化,不对应)