Vue挂载的方式
Vue创建组件的方式
Vue自调用函数
Vue
Vue
Vue
Vue动画案例
Vue计数器
Vue路由创建
Vue路由动画展示
Vue李白评论
Vue
v-mode绑定在input中,关联data相关的数据
相当于input中的value,但是他能关联多个
<div id="app">
<input v-model="message1" >+
<input v-model="message2" >=
<input v-model="message3" >
<button id="a1" @click=aaa>点击相加</button>
</div>
主要用途:
数据的双向绑定(多向)
v-for
用于大部分数据重复,仅改变少部分数据
如:列表
事例:
<div class="a" v-for="item in items">我喜欢吃{{item.message}}<br></div>
new Vue({
el:"#app",
data:{
items:[
{message:"馒头"},
{message:"橘子"},
{message:"香蕉"},
{message:"苹果"},
{message:"梨子"}
]
}
})
1、new Vue({
el:"#app"
})
2、new Vue({}).$mount('#app');
创建组件的方式
公共组件
外部组件({}代表Vue.extend({}))
Vue.component('mycom1', {
template: '<div><input><a src="#a">我爱你</a></div>'
})
可以将标签放在body中,命名id
Vue.component('mycom1',{template: '#temp1'})
私有化组件
new Vue({
el: "#app",
components:{
'mycom1': {template: '<div><input><a src="#a">我爱你</a></div>'}
}
})
Vue回车键调用函数
<input type="text" value="button" @keyup.enter=kkk>
自调用函数
mounted(){
this.warning();
}
v-if案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="vue.js"></script>
<style type="text/css">
</style>
</head>
</script>
<body>
<div id="app">
<input type="button" value="Tag" @click="flag=!flag">
<h3 v-if="flag">给我一片遐想</h3>
</div>
</body>
<script>
var vm = new Vue({
el:"#app",
data:{
flag:false
},
methods:{}
});
</script>
</html>
vue动画案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="vue.js"></script>
<style type="text/css">
.v-enter,
.v-leave-to {
opacity: 0;
}
.v-enter-active,
.v-leave-action {
transition:all 5s ease;
}
</style>
</head>
</script>
<body>
<div id="app">
<input type="button" value="Tag" @click="flag=!flag">
<transition>
<h3 v-if="flag">给我一片天空</h3>
</transition>
</div>
</body>
<script>
var vm = new Vue({
el:"#app",
data:{
flag:false
},
methods:{}
});
</script>
</html>
计数器
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="vue.js"></script>
<style type="text/css">
#button1{
border-radius: 20px;
width:100px;
height:80px;
font-size: 60px;
}
span{
width:100px;
height:80px;
border:1px solid black;
font-size: 60px;
background: skyblue;
}
</style>
</head>
</script>
<body>
<div id="app">
<input type="button" id="button1" @click="add" value="+">
<span >{{num}}</span>
<input type="button" id="button1" value="-" @click="sub">
{{message}}
</div>
</body>
<script>
// var com1 = Vue.extend({
// template:'<div><input><a src="#a">我爱你</a></div>'
// })
// Vue.component('myCom1',com1)
var vm = new Vue({
el:"#app",
data:{
num:1,
message:0
},
methods:{
add:function(){
this.num++;
},
sub:function(){
this.num--;
}
}
});
</script>
</html>
Vue路由创建
<html>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<body>
<div id="app">
<h1>Hello App!</h1>
<p>
<!-- 使用 router-link 组件来导航. -->
<!-- 通过传入 `to` 属性指定链接. -->
<!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar122">Go to Bar</router-link>
</p>
<!-- 路由出口 -->
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>
</div>
<template id="temp1">
<h1>i love you</h1>
</template>
</body>
<script>
var router = new VueRouter({
routes:[
{ path: '/foo', component:{ template: '#temp1' } },
{ path: '/bar122', component: { template: '<div>bar</div>' } }
] // (缩写) 相当于 routes: routes
})
new Vue({
router
}).$mount('#app')
// 现在,应用已经启动了!
</script>
</html>
路由动画转向测试
<html>
<head>
<style>
#love,#hate{
display: block;
background: black;
border-radius: 50%;
height: 300px;
width: 300px;
margin: 0;
background: radial-gradient(circle at 100px 100px, #5cabff, #000);
}
.router-link-active {
color: red;
font-weight: 800;
font-style:italic;
font-size:100px;
}
.v-enter,
.v-leave-to{
opacity:0;
transform: rotateY(120deg);
}
.v-enter-active,
.v-leave-active {
transition: all 0.4s ease;
}
</style>
</head>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<body>
<div id="app">
<router-link to="aaa">转向测试一</router-link>
<router-link to="bbb">转向测试二</router-link>
<transition mode="out-in">
<router-view>
</router-view>
</transition>
</div>
<template id="temp1">
<div id="love">
</div>
</template>
<template id="temp2">
<div id="hate">
12123
</div>
</template>
</body>
<script>
var t1={template:"#temp1"}
var router = new VueRouter({
routes:[
{path:"/",redirect:'/aaa'},
{path:"/aaa",component:{template:"#temp1"}},
{path:"/bbb",component:{template:"#temp2"}}
]
})
new Vue({
el:"#app",
router
})
</script>
</html>
李白添加评论
<!-- <html> -->
<html>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<head>
<style>
</style>
</head>
<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<body>
<div id="app">
<mycom1></mycom1>
<ul class="list-group">
<li class="list-group-item" v-for="item in list" :key="item.id">
<span class="badge">评论人:{{item.user}}</span>
{{item.content}}
</ul>
</div>
<template id="temp1">
<div>
<div class="form-group">
<label>评论人:</label>
<input type="text" class="form-control" v-model="user">
</div>
<div class="form-group">
<label>评论内容:</label>
<textarea class="form-control" v-model="content"></textarea>
</div>
<div class="form-group">
<input type="button" value="发表评论" class="btn btn-primary" @click="postComment">
</div>
</div>
</template>
</body>
<script>
var commentBox = {
data() {
return {
user: "",
content: ""
}
},
template:'#temp1',
methods:{
postComment(){
}
}
}
new Vue({
el: "#app",
data: {
list: [
{ id: Date.now(), user: '杜甫', content: '千金丧尽还复来' },
{ id: Date.now(), user: '江南', content: '一览众山小' },
{ id: Date.now(), user: '李贺', content: '柳暗花明又一村' }
]
},
methods: {},
components: {
'mycom1': commentBox
}
})
</script>
</html>
axios
Get
axios.get('https://autumnfish.cn/api/joke/list?num=10').then(function(response){
// console.log(response.data.jokes[1])
document.getElementById('div1').value=response.data.jokes[1];
},function(err){
console.log(err);
})
Post
document.getElementById('button2').onclick = function(){
axios.post('https://autumnfish.cn/api/user/reg',
{username:'kkk12345'}).then(function(response){
console.log(response);
})
}