vue中axios和组件的简单使用


axios简单使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/axios.min.js"></script>
    <script src="js/vue.js"></script>
</head>
<style>
    .btn{
        height: 50px;
        width: 60px;
        text-align: center;
    }
</style>
<body>
<div id="app">
    <button @click="clickHardler" class="btn">提交</button>
</div>
</body>

<script>
let vm = new Vue({
el:"#app",
data(){
return{

     }
 },
 methods:{
   clickHardler(){
       axios.get(&#39;http://wthrcdn.etouch.cn/weather_mini?city=&quot;北京&quot;&#39;).then(function(res){
           console.log(res)
       })
   }
 }

})
</script>
</html>

组件的简单应用

插入一个组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>组件</title>
    <script src="js/vue.js"></script>
    <script src="js/axios.min.js"></script>
</head>
<body>
<div id="app">
    <App></App>

</div>

</body>
<script>
//声明组件\声子,也是局部组件
let App = {
data(){
return{
msg:"hello world",
}
},
template: &lt;div&gt; &lt;h1&gt;app组件!!!&lt;/h1&gt; &lt;/div&gt;
};

let vm = new Vue({
    el:&quot;#app&quot;,
    data(){
        return{}
    },
    //挂载组件
    components:{
        //App:App,     //键是传输到前端页面上的,值是组件名,键值一样,也一个就行
        App,
    }

})

</script>
</html>

在组件中写子组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>组件</title>
    <script src="js/vue.js"></script>
    <script src="js/axios.min.js"></script>
</head>
<style>
    .header{
    width: 1200px;
    height: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    position: relative;
    }
</style>
<body>
<div id="app">
    <App></App>

</div>

</body>
<script>
//在组件中写子组件,的方式
//1先声明子组件
let vHeader = {
data(){
return{}
},
template: &lt;div class=&quot;header&quot;&gt; &lt;h1 style=&quot;color:red; text-align: center&quot;&gt;头部区域&lt;/h1&gt; &lt;/div&gt;
};

//声明组件\声子,也是局部组件
let App = {
  data(){
      return{
          msg:&quot;hello world&quot;,
      }
  },
    //子组件引入父组件的方式是,将挂载好的组件,以标签的形式引入
  template:`
  &lt;div&gt;
  &lt;vHeader&gt;&lt;/vHeader&gt;
  &lt;h1&gt;app组件!!!&lt;/h1&gt;

</div>`,
//2在父组件的template中挂载组件
components: {
vHeader, //键是传到前端页面的,值是子组件的变量名
//如果键值一样,写一个也可以
}
};

let vm = new Vue({
    el:&quot;#app&quot;,
    data(){
        return{}
    },
    //挂载组件
    components:{
        //App:App,     //键是传输到前端页面上的,值是组件名,键值一样,也一个就行
        App,
    }

})

</script>
</html>

全局组件的使用

Xxoo是全局组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>组件</title>
    <script src="js/vue.js"></script>
    <script src="js/axios.min.js"></script>
</head>
<style>
    .header{
    width: 1200px;
    height: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    position: relative;
    }
</style>
<body>
<div id="app">
    <App></App>

</div>

</body>
<script>
//定义全局组件的方式不一样
Vue.component('Xxoo',{
data(){
return{}
},
template: &lt;div class=&quot;ss&quot;&gt; &lt;h1 style=&quot;color:yellow;&quot;&gt;全局xxoo区域&lt;/h1&gt; &lt;/div&gt;
});

//在组件中写子组件,的方式
//1先声明子组件
let vHeader = {
  data(){
      return{}
  },
    //全局组件使用时,不用挂载直接可以直接以标签的方式使用
  template:`
  &lt;div class=&quot;header&quot;&gt;
  &lt;Xxoo&gt;&lt;/Xxoo&gt;
  &lt;h1 style=&quot;color:red; text-align: center&quot;&gt;头部区域&lt;/h1&gt;

</div>`
};

//声明组件\声子,也是局部组件
let App = {
  data(){
      return{
          msg:&quot;hello world&quot;,
      }
  },
    //子组件引入父组件的方式是,将挂载好的组件,以标签的形式引入
  template:`
  &lt;div&gt;
  &lt;Xxoo&gt;&lt;/Xxoo&gt;
  &lt;vHeader&gt;&lt;/vHeader&gt;
  &lt;h1&gt;app组件!!!&lt;/h1&gt;

</div>`,
//2在父组件的template中挂载组件
components: {
vHeader, //键是传到前端页面的,值是子组件的变量名
//如果键值一样,写一个也可以
}
};

let vm = new Vue({
    el:&quot;#app&quot;,
    data(){
        return{}
    },
    //挂载组件
    components:{
        //App:App,     //键是传输到前端页面上的,值是组件名,键值一样,也一个就行
        App,
    }

})

</script>
</html>

组件传值

父传子组件

静态传参和动态传传参的方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/vue.js"></script>
    <script src="js/axios.min.js"></script>
</head>
<body>
<div id="app">
    <App></App>

</div>

</body>
<script>
//声明子组件
let vHeader = {
data(){
return{}
},
template: &lt;div class=&quot;header&quot;&gt; &lt;h1 style=&quot;color:red;&quot;&gt;子组件,父组件数据{{xx}}通过props属性来接收&lt;/h1&gt; &lt;/div&gt;,
props:['xx']

};

//声明父组件
let App = {
    data(){
        return{
            msg:&#39;hello app组件&#39;,
            num:100,
        }
    },
    //&lt;vHeader xx=200&gt;&lt;/vHeader&gt;  静态传参的方式
    //&lt;vHeader :xx=num&gt;&lt;/vHeader&gt;动态传参的方式
    //&lt;vHeader v-bind:xx=num&gt;&lt;/vHeader&gt; 上面动态传参的方式也就是这个v-bind绑定
    template:`
    &lt;div&gt;
    &lt;vHeader v-bind:xx=num&gt;&lt;/vHeader&gt;
    &lt;h1&gt;app组件&lt;/h1&gt;

</div>`,
//挂在子组件vHeader
components: {
vHeader,
}
};

let vm = new Vue({
    el:&quot;#app&quot;,
    data(){
        return{}
    },
    //挂载组件
    components:{
        App,
    }

})

</script>

</html>

组件传值子传父

子组件vHeader通过this.$emit("父组件使用子组件的自定义事件名称",子组件中的参数),将参数传给组件

组件在通过事件函数,将子组件数据赋值给组件中的空属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/vue.js"></script>
    <script src="js/axios.min.js"></script>
</head>
<body>
<div id="app">
    <App></App>
</div>

</body>
<script>
//1 定义子组件vHeader
let vHeader = {
data(){
return{
sonxx:80,
}
},
template: &lt;div class=&quot;header&quot;&gt; &lt;h1 style=&quot;color:red&quot;&gt;头部区域&lt;/h1&gt; &lt;/div&gt;,
created(){
this.$emit('father',this.sonxx); //father是父组件使用子组件时的自定义事件名称,
}
};

//1 定义组件
let App = {
    data(){
        return{
            msg:&quot;hello app子组件&quot;,
            num:100,
            sonnum:&quot;&quot;,
        }
    },
    template:`
    &lt;div&gt;
    &lt;vHeader @father=&quot;transfer_parameters&quot;&gt;&lt;/vHeader&gt;
    &lt;h1&gt;app组件&lt;/h1&gt;
    &lt;hr&gt;
    &lt;h2&gt;{{sonnum}}&lt;/h2&gt;

</div>`,
//2 挂载自组件vHeader
components:{
vHeader,
},
//第二步,写自定义事件<vHeader @father="transfer_parameters"></vHeader>
methods:{
transfer_parameters(val){
this.sonnum = val;
}
}
};

let vm = new Vue({
    el:&quot;#app&quot;,
    data(){
        return{}
    },
    components:{
        //挂载组件
        App,
    }
})

</script>
</html>

平行组件传值(全局组件传值)

平行组件中传值,通过定义全局变量bus

定义方式:let bus = new Vue()

在传值的组建中定义事件,通过点击事件,将值赋值给bus

平行组件取值时,通过钩子created(){

bus.$on(“bus中存放的变量名”,(存放的变量))

}

在通过变量赋值到平行组件的属性中去

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>全局组件传值</title>
    <script src="js/vue.js"></script>
    <script src="js/axios.min.js"></script>
</head>
<body>
<div id="app">

</div>

</body>
<script>
//平行组件中传值需要通过定义全局变量传,我们俗称公交车,变量bus
//平行组件传值,bus公交车
//1 创建公交车
let bus = new Vue();

//定义全局组件1
Vue.component(&quot;T1&quot;,{
    data(){
        return{
            t1_num:100,
        }
    },
    template:`
    &lt;div&gt;
    &lt;h1&gt;T1组件:{{t1_num}}&lt;/h1&gt;
    &lt;button @click=&quot;transfer_parameters&quot;&gt;&lt;/button&gt;

</div>`,
methods:{
transfer_parameters() {
bus.$emit("t1_data",this.t1_num)
}
}
});

//定义全局组件2
Vue.component(&quot;T2&quot;,{
    data(){
        return{
            t2_num:200,
        }
    },
    template:`
    &lt;div&gt;
    &lt;h1&gt;T2组件:{{t2_num}}&lt;/h1&gt;

</div>`,
created(){
bus.$on('t1_data',(val) =>{
this.t2_num = val;
})
}
});

let vm = new Vue({
    el:&quot;#app&quot;,
    data(){
        return{

        }
    },
    template:`
    &lt;div&gt;
    &lt;T1&gt;&lt;/T1&gt;
    &lt;T2&gt;&lt;/T2&gt;

</div>`

})

</script>
</html>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM