Vue是一个前端框架,我学习Vue的主要目前其实是想使用Element-UI框架。
这里推荐两个资源:
1
2
3
4
5
6
7
8
9
10
11
12
|
<div id="app">
{{ message }}
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app =new Vue({
el:"#app",
data:{
message:"hello Vue!"
}
})
</script>
|
- el : 挂载点
- data: 数据,里面也可以放数组,对象等
- v-text指令的作用:设置标签的内容
- v-html指令的作用是:设置元素的innerHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<h2 v-text = "message">北京</h2>
<h2>{{ message+"!" }}深圳</h2>
<p v-html="content"></p>
<script>
var app=new Vue({
el:"#app",
data:{
message:"嘿嘿嘿",
content:"<a href='https://mp.csdn.net/console/home'>黑马</a>"
}
})
</script>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<button @click="sub">-</button>
<input type="text" @keyup.enter="sayHi">
<script>
var app=new Vue({
el:"#app",
data:{
num:1
},
methods:{
sub:function(){
console.log("sub");
}
}
})
</script>
|
- v-show、v-if指令:元素的显示与隐藏、v-if操作DOM树开销大
1
2
3
4
5
|
<img v-show="isShow" src="./1.jpg">
<img v-show="age>=18" src="./1.jpg">
<p v-if="true">我是一个p标签</p>
<p v-if="isShow">我是一个p标签</p>
|
- v-bind指令:为元素绑定属性、需要动态的增删class建议使用对象的方式
1
2
|
<img :src="imgSrc" :title="imgTitle+'显示'" :class="isActive?'active':''" @click="toggleActive">
<img :src="imgSrc" :title="imgTitle+'显示'" :class="{active:isActive}" @click="toggleActive">
|
1
2
3
4
5
6
|
<li v-for="(item,index) in arr" :title="item">
{{ index }}{{ item }}
</li>
<li v-for="(item,index) in objArr">
{{ item.name }}
</li>
|
1
2
3
4
5
6
7
8
9
|
<input type="button" v-model="message" />
<script>
var app=new Vue({
el:"#app",
data:{
message:"沙丁鱼"
},
</script>
|
注意点
- axios回调函数中this指向改变了,需要额外的保存一份
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
# axios.get(地址?key=value&key2=values).then(function(response){},function(err){})
# 示例
search : function(){
var that = this;
axios.get("https://autumnfish.cn/search?keywords=" + this.keyword).then(function(response){
console.log(response)
that.music_arr = response.data.result.songs
}, function(err){
console.log(err)
})
},
# axios.post(地址,{key:value,key2:value2}).then(function(response){},function(err){})
# 示例
Mpost : function(){
axios.post("https://autumnfish.cn/api/user/reg",{username:"222阿香3"})
.then(function(response){
console.log(response);
},function(err){
console.log(err);
})
},
|
1
2
3
4
5
6
7
8
|
# 链接触发javascript
<a href="javascript:;" @click="changeCity('北京')">北京</a>
# audio使用
<audio v-bind:src="MusicUrl" ref="audio" controls autoplay loop @play="play" @pause="pause"></audio>
# video使用
<video v-bind:src="MvUrl" controls="controls"></video>
|