vue-router之間的操作

既然用了vue,那么vue-router就是在項(xiàng)目開發(fā)中必不可少的一部分操作了,這里我特意整理了一些在vue項(xiàng)目開發(fā)過程中涉及到的一些操作吧。

路由之間傳參

由A路由到B路由之間的傳參,可以通過$router的query和param傳遞,用query傳遞的參數(shù),會(huì)在瀏覽器的url路徑中展示出來,不具有保密性,但是刷新后依舊存在,由param傳遞的參數(shù),不會(huì)在瀏覽器的url路徑中展示出來,而且刷新后不會(huì)再在當(dāng)前頁面中展示,具體使用方法如下:

this.$router.push({
    path: "/imp/style",
    query:"params"
})
this.$router.push({
    path: "/imp/style",
    query:{key:value}
})
this.$router.push({
    path: "/imp/style",
    param:{key:value}
})
this.$router.push({
    path: "/imp/style",
    param:"params"
})

取值方法:

query:
this.$route.query
param:
this.$route.param

父子組件之間傳參

父組件

先在父組件中引入子組件,

import childToP from './childToP'

然后在tempate里面使用

<div class="context">
        <div>這是父組件
            <p>{{message}}</p></div>
        <childToP @childData="getData"></childToP>
</div>

定義一個(gè)@childData="getData"方法,接收子組件傳遞給父組件的事件,@childData這個(gè)方法是子組件里定義的,如果自組建立未定義,那在父組件里可以不用接收。

 methods: {
            getData(getVal) {
                  // getVal就是子組件的操作事件傳過來的值
                this.message = getVal;
            },
        },
父組件向子組件傳參

如果需要從父組件里向子組件傳遞信息或者點(diǎn)擊事件,可以在使用子組件的時(shí)候,在子組件上綁定屬性和要傳遞的事件,要先在data里面聲明該屬性,即:pdata,然后在子組件里面使用props來接收,

import toC from './toC'
<to-C :msgFromP="pdata" :aaa="func"></to-C>
<template>
    <div class="context">
        this is aaa
        <to-C :msgFromP="pdata" :aaa="func"></to-C>
    </div>
</template>
<script>
    import toC from './toC'
 
    export default {
        components: {toC},
        name: "parentToC",
        data() {
            return {
                pdata: 'this is parent message'
            }
        },
        methods: {
            //這里是在父組件定義的方法,在子組件里面也可以接收,然后通過對(duì)子組件的操作實(shí)現(xiàn)你的目的
            func() {
                console.log('ccc');  
            }
        }
    }
</script>

在子組件里面接收

<template>
    <div class="context222">
        <p class="text" @click="aaa">{{msgFromP}}</p>
    </div>
</template>
<script>
    export default {
        name: "toC",
        props: {
            msgFromP: '',
            aaa: null
        }
    }
子組件

在子組件中,可以直接在div里寫你要傳遞的信息,不需要使用 this.$emit() 方法也可;

<template>
    <div class="context">
        <div>{{msg1}}</div>
    </div>
</template>
<script>
    export default {
        name: "childToP",
        data() {
            return {
                msg1:'這是子組件這是子組件這是子組件',
             
            }
        }
    }
</script>
子組件向父組件傳參

如果你需要操作父組件里面的數(shù)據(jù)或者給父組件發(fā)信息,先定義一個(gè)點(diǎn)擊事件,然后用
this.$emit("childData", this.msg) 方法,把子組件里要傳遞的信息發(fā)送過去即可。

<template>
  <div class="context">
      <div @click="tomsg">這是子組件</div>
  </div>
</template>
<script>
    export default {
      name: "childToP",
      data(){
        return{
          msg:"this is child data"
        }
      },
      methods:{
        tomsg(){
            // 這里也可以是對(duì)象
            let data="這是子組件里面的數(shù)據(jù)"
            this.msg=data
            this.$emit("childData",this.msg)
        }
      }
    }
</script>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Vue 3.0 性能提升主要是通過哪幾方面體現(xiàn)的? vue2在初始化的時(shí)候,對(duì)data中的每個(gè)屬性使用define...
    Smallbore閱讀 1,216評(píng)論 0 8
  • 一、 組件component 1. 什么是組件? 組件(Component)是 Vue.js 最強(qiáng)大的功能之一。組...
    饑人谷_Leonardo閱讀 2,165評(píng)論 0 18
  • VUE介紹 Vue的特點(diǎn)構(gòu)建用戶界面,只關(guān)注View層簡單易學(xué),簡潔、輕量、快速漸進(jìn)式框架 框架VS庫庫,是一封裝...
    多多醬_DuoDuo_閱讀 2,855評(píng)論 1 17
  • 第一章 Vue概述 what? Vue是實(shí)現(xiàn)UI層的漸進(jìn)式j(luò)s框架,核心庫關(guān)注視圖層,簡單的ui構(gòu)建,復(fù)雜的路由控...
    fastwe閱讀 833評(píng)論 0 0
  • 秋風(fēng)微涼,陽光溫暖。 日子一如既往的單調(diào),好似來回繞圈的秒針。 然而秒針還有時(shí)針與分針的陪伴,而你,還沒出現(xiàn)在我的...
    默然的風(fēng)閱讀 310評(píng)論 0 0

友情鏈接更多精彩內(nèi)容