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