欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue的組件通訊方法總結(jié)大全

 更新時(shí)間:2022年07月19日 10:55:25   作者:Hisst  
這篇文章主要為大家介紹了非常全面vue的組件通訊方法總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1.通過屬性傳值props??

父組件向子組件傳送數(shù)據(jù),這應(yīng)該是最常用的方式了
子組件接收到數(shù)據(jù)之后,不能直接修改父組件的數(shù)據(jù)。會(huì)報(bào)錯(cuò),所以當(dāng)父組件重新渲染時(shí),數(shù)據(jù)會(huì)被覆蓋。如果子組件內(nèi)想要修改的話,推薦使用computedprops 可以是數(shù)組或?qū)ο螅糜诮邮諄碜愿附M件的數(shù)據(jù)。

// 父組件 List.vue
<template>
  <div>
    <List-item :str="str" :obj="obj" :arr="arr"></List-item>
  </div>
</template>
<script>
import ListItem from "./ListItem";
export default {
  data() {
    return {
      str: "給子組件傳值",
      obj: {msg: "給子組件傳值"},
      arr: [1, 2, 3]
    }
  },
  components: {
    ListItem
  }
}
</script>
// 子組件 ListItem.vue
<template>
  <div>
    <div>{{msg}}</div>
    <div>{{obj}}</div>
    <div>{{arr}}</div>
  </div>
</template>
<script>
export default {
  props: {
    msg: String, // props是字符串
    obj: Object, // props是對(duì)象
    arr: Array   // props是數(shù)組
  }
}
</script>

2.修飾符 .sync??

修飾符 .sync,它對(duì) props 起到了一種修飾的作用,使用 .sync 進(jìn)行修飾的 props 意味子組件有修改它的意圖,這種情況下它只起到一個(gè)標(biāo)注性作用,有它沒它都不會(huì)影響邏輯
使用 .sync 修改上邊的代碼:

// 父組件 List.vue
<template>
  <!-- 這里不寫 .sync 也不會(huì)影響結(jié)果 -->
  <List-item :title.sync="title" @update:title="updataTitle"></List-item>
</template>
<script>
import ListItem from "./ListItem";
export default {
  data() {
    return {
      title: "我是title",
    }
  },
  components: {
    ListItem
  },
  methods: {
   updataTitle(res) {
    this.title = res;
   }
  }
}
</script>
// 子組件 ListItem.vue
<template>
  <div>
    <button @click="handleClick">Click me</button>
    <div>{{title}}</div>
  </div>
</template>
<script>
export default {
  props: {
    title: String, 
  },
  methods: {
   handleClick() {
    // 子組件向父組件傳值
    this.$emit('update:title', '我要父組件更新 title');
   }
  }
}
</script>

3.使用.sync 向子組件傳遞 多個(gè)props:??

當(dāng)我們用一個(gè)對(duì)象同時(shí)設(shè)置多個(gè) prop 的時(shí)候,也可以將這個(gè) .sync 修飾符和 v-bind 配合使用:

<text-document v-bind.sync="doc"></text-document>

這樣會(huì)把 doc 對(duì)象中的每一個(gè)屬性 (如 title) 都作為一個(gè)獨(dú)立的 prop 傳進(jìn)去,然后各自添加用于更新的 v-on 監(jiān)聽器。

4.通過 ref 注冊(cè)子組件引用??

盡管存在 prop 和事件,有的時(shí)候你仍可能需要在 JavaScript 里直接訪問一個(gè)子組件。為了達(dá)到這個(gè)目的,可以通過 ref 特性為這個(gè)子組件賦予一個(gè) ID 引用。

<template>
  <div>
    <List-item ref="item" :title="title"></List-item>
    <div>{{data}}</div>
  </div>
</template>
<script>
import ListItem from "./List-item";
export default {
  data() {
    return {
      title: "我是title",
      data: ""
    }
  },
  components: {
    ListItem
  },
  mounted() {
    this.data = this.$refs.item.message;
  }
}
</script>

5.通過$parent獲取父組件實(shí)例的方法或者屬性??

這種方式,從嚴(yán)格意思上講不是值的傳遞,而是一種"取"(不推薦直接通過實(shí)例進(jìn)行值的獲取)。

可以通過 Vue 的實(shí)例屬性 $parent 獲得父組件的實(shí)例,借助實(shí)例可以調(diào)用父實(shí)例中的方法,或者獲取父實(shí)例上的屬性,從而達(dá)到取值的目的。

// 父組件 List.vue
...
<script>
export default {
  data() {
    return {
      message: "hello children",
      msg: "hello"
    }
  },
  methods: {
    sendMessage() {
      return this.message;
    }
  }
}
</script>
// 子組件 ListItem.vue
<template>
  <div>
    <div>{{data}}</div>
    <div>{{msg}}</div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      data: "",
      msg: ""
    }
  },
  mounted() {
    this.data = this.$parent.sendMessage(); // 調(diào)用父實(shí)例中的方法
    this.msg = this.$parent.msg; // 獲取父實(shí)例中的屬性
  }
}
</script>

??????:

  • 通過 $parent 獲取父實(shí)例 this.$parent.event。
  • 通過 props 傳遞方法。
  • 通過 $emit 監(jiān)聽父組件中的方法 this.$emit("envnt")。

6. 通過事件傳值 $emit??

子組件使用 $emit 發(fā)送一個(gè)自定義事件,事件名稱是一個(gè)字符串。
父組件使用指令 v-on 綁定子組件發(fā)送的自定義事件。

// 父組件 List.vue
<template>
  <div>
    <!-- 監(jiān)聽自定義事件 -->
    <List-item v-on:welcome="getWelcome"></List-item>
  </div>
</template>
<script>
import ListItem from "./List-item";
export default {
  components: {
    ListItem
  },
  methods: {
    getWelcome(data) {
      alert(data)
    }
  }
}
</script>
// 子組件 ListItem.vue
<template>
  <button @click="handleClick">Click me</button>
</template>
<script>
export default {
  methods: {
    handleClick() {
   // 使用 $emit 發(fā)送自定義事件 welcome
      this.$emit('welcome', 'hello');
    }
  }
}
</script>

7.$children??

獲取父組件下的所有子組件的實(shí)例,返回的是一個(gè)數(shù)組 使用范圍:該屬性只針對(duì)vue組件,與js中childNodes還是有區(qū)別的。

$ildren: 獲取子組件實(shí)例集合hildNodes: 獲取子節(jié)點(diǎn)集合使用方法:

&lt;template&gt;
    &lt;A&gt;&lt;/A&gt;
    &lt;B&gt;&lt;/B&gt;
&lt;/template&gt;
&lt;script&gt;
    export default{
        data(){},
        mounted(){
            //  通過$children可以獲取到A和B兩個(gè)子組件的實(shí)例
            console.log('children:',this.$children)
        }
    }
&lt;/script&gt;
其中,
this.$children[0]
可以獲取到A組件的實(shí)例,一樣的,我們可以使用A組件的屬性以及他的方法。

8.Vuex??

Vuex介紹

  • Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化.
  • Vuex 解決了多個(gè)視圖依賴于同一狀態(tài)和來自不同視圖的行為需要變更同一狀態(tài)的問題,將開發(fā)者的精力聚焦于數(shù)據(jù)的更新而不是數(shù)據(jù)在組件之間的傳遞上

Vuex各個(gè)模塊

  • state:用于數(shù)據(jù)的存儲(chǔ),是store中的唯一數(shù)據(jù)源
  • getters:如vue中的計(jì)算屬性一樣,基于state數(shù)據(jù)的二次包裝,常用于數(shù)據(jù)的篩選和多個(gè)數(shù)據(jù)的相關(guān)性計(jì)算
  • mutations:類似函數(shù),改變state數(shù)據(jù)的唯一途徑,且不能用于處理異步事件
  • actions:類似于mutation,用于提交mutation來改變狀態(tài),而不直接變更狀態(tài),可以包含任意異步操作
  • modules:類似于命名空間,用于項(xiàng)目中將各個(gè)模塊的狀態(tài)分開定義和操作,便于維護(hù)

Vuex實(shí)例應(yīng)用

這里我們先新建 store文件夾, 對(duì)Vuex進(jìn)行一些封裝處理
在 store 文件夾下添加 index.js 文件

// index.js
// 自動(dòng)掛載指定目錄下的store
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
let modules = {}
// @/store/module 目錄下的文件自動(dòng)掛載為 store 模塊
const subModuleList = require.context('@/store/modules', false, /.js$/)
subModuleList.keys().forEach(subRouter => {
  const moduleName = subRouter.substring(2, subRouter.length - 3)
  modules[moduleName] = subModuleList(subRouter).default
})
export default new Vuex.Store({
  state: {},
  mutations: {},
  actions: {},
  modules
})

在 store 文件夾下添加 module 文件夾,在module文件夾再新建 user.js 文件

// user.js
import user from '@/utils/user.js'
import userApi from '@/apis/user'
import { OPEN_ACCOUNT_STAGE, STAGE_STATUS } from '@/constant'
let getUserPromise = null
export default {
  namespaced: true,
  state() {
    return {
      userInfo: null, // 用戶信息
      isLogined: !!user.getToken(), // 是否已經(jīng)登錄
    }
  },
  mutations: {
    // 更新用戶信息
    updateUser(state, payload) {
      state.isLogined = !!payload
      state.userInfo = payload
    },
  },
  actions: {
    // 獲取當(dāng)前用戶信息
    async getUserInfo(context, payload) {
      // forceUpdate 表示是否強(qiáng)制更新
      if (context.state.userInfo && !payload?.forceUpdate) {
        return context.state.userInfo
      }
      if (!getUserPromise || payload?.forceUpdate) {
        getUserPromise = userApi.getUserInfo()
      }
      // 獲取用戶信息
      try {
        const userInfo = await getUserPromise
        context.commit('updateUser', userInfo)
      } finally {
        getUserPromise = null
      }
      return context.state.userInfo
    },
    // 登出
    async logout(context, payload = {}) {
      // 是否手動(dòng)退出
      const { manual } = payload
      if (manual) {
        await userApi.postLogout()
      }
      user.clearToken()
      context.commit('updateUser', null)
    },
  }
}

然后在項(xiàng)目的 main.js 文件中引入

import Vue from 'vue'
import App from '@/app.vue'
import { router } from '@/router'
import store from '@/store/index'
const vue = new Vue({
  el: '#app',
  name: 'root',
  router,
  store,
  render: h => h(App),
})

封裝完成,即可正常操縱

this.$store.state.user.isLogined
this.$store.state.user.userInfo
this.$store.commit('user/updateUser', {})
 await this.$store.dispatch('user/logout', { manual: true })

9.eventBus??

ventBus夠簡(jiǎn)化各組件間的通信,讓我們的代碼書寫變得簡(jiǎn)單,能有效的分離事件發(fā)送方和接收方(也就是解耦的意思),能避免復(fù)雜和容易出錯(cuò)的依賴性和生命周期問題。

  • Event 事件。它可以是任意類型。
  • Subscriber 事件訂閱者。在EventBus3.0之前我們必須定義以onEvent開頭的那幾個(gè)方法,分別是onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,而在3.0之后事件處理的方法名可以隨意取,不過需要加上注解@subscribe(),并且指定線程模型,默認(rèn)是POSTING。
  • Publisher 事件的發(fā)布者。我們可以在任意線程里發(fā)布事件,一般情況下,使用EventBus.getDefault()就可以得到一個(gè)EventBus對(duì)象,然后再調(diào)用post(Object)方法即可。

10. provide / inject??

provide / inject 是vue2.2.0新增的api, 簡(jiǎn)單來說就是父組件中通過provide來提供變量, 然后再子組件中通過inject來注入變量。

provide 選項(xiàng)應(yīng)該是

  • 一個(gè)對(duì)象或返回一個(gè)對(duì)象的函數(shù)。該對(duì)象包含可注入其子孫的屬性。在該對(duì)象中你可以使用 ES2015 Symbols 作為 key,但是只在原生支持 Symbol 和 Reflect.ownKeys 的環(huán)境下可工作。

inject 選項(xiàng)應(yīng)該是:

  • 一個(gè)字符串?dāng)?shù)組
  • 一個(gè)對(duì)象(詳情點(diǎn)擊這里) 基本用法:
// 祖先組件 提供foo
//第一種
export default {
  name: "father",
  provide() {
    return {
      foo: 'hello'
    }
  },
}
//第二種
export default {
  name: "father",
  provide: {
    foo:'hello~~~~'
  },
}
//后代組件 注入foo, 直接當(dāng)做this.foo來用
export default {
  inject:['foo'],
}

上面的兩種用法有什么區(qū)別嗎?

  • 如果你只是傳一個(gè)字符串,像上面的hello,那么是沒有區(qū)別的,后代都能讀到。
  • 如果你需要this對(duì)象屬性的值(如下所示代碼),那么第二種是傳不了的,后代組件拿不到數(shù)據(jù)。所以建議只寫第一種
//當(dāng)你傳遞對(duì)象給后代時(shí)
provide() {
    return {
        test: this.msg
    }
},

注意:一旦注入了某個(gè)數(shù)據(jù),比如上面示例中的 foo,那這個(gè)組件中就不能再聲明 foo 這個(gè)數(shù)據(jù)了,因?yàn)樗呀?jīng)被父級(jí)占有。

provide 和 inject 綁定并不是可響應(yīng)的。

這是刻意為之的。然而,如果你傳入了一個(gè)可監(jiān)聽的對(duì)象,那么其對(duì)象的屬性還是可響應(yīng)的。因?yàn)閷?duì)象是引用類型。

先來個(gè)值類型的數(shù)據(jù)(也就是字符串)例子,不會(huì)響應(yīng)

provide(){
  return{
    test:this.msg
  }
},
data() {
  return {
    msg: "Welcome to Your Vue.js App",
  }
}
mounted(){
  setTimeout(()=>{
    this.msg = "halo world";
    console.log(this._provided.msg)
    //log:Welcome to Your Vue.js App
  },3000)
},

如上所示,這樣做是不行的,打印出來的 _provided 中的數(shù)據(jù)并沒有改,子組件取得值也沒變。

你甚至可以直接給 this._provided.msg 賦值,但是即使是_provided.msg 里面的值改變了,子組件的取值,依然沒有變。

當(dāng)你的參數(shù)是對(duì)象的時(shí)候,就可以響應(yīng)了,如下:

provide(){
  return{
    test:this.activeData
  }
},
data() {
  return {
    activeData:{name:'halo'},
  }
}
mounted(){
  setTimeout(()=>{
    this.activeData.name = 'world';
  },3000)
}

這就是vue官方中寫道的對(duì)象的屬性是可以響應(yīng)的

provide/inject 實(shí)現(xiàn)全局變量

provide/inject不是只能從祖先傳遞給后代嗎?是的,但是,如果我們綁定到最頂層的組件app.vue,是不是所有后代都接收到了,就是當(dāng)做全局變量來用了。

//app.vue
export default {
  name: 'App',
  provide(){
    return{
      app:this
    }
  },
  data(){
    return{
      text:"it's hard to tell the night time from the day"
    }
  },
  methods:{
    say(){
      console.log("Desperado, why don't you come to your senses?")
    }
  }
}
//其他所有子組件,需要全局變量的,只需要按需注入app即可
export default {
  inject:['foo','app'],
  mounted(){
    console.log(this.app.text); // 獲取app中的變量
    this.app.say(); // 可以執(zhí)行app中的方法,變身為全局方法!
  }
}

provide/inject 實(shí)現(xiàn)頁面刷新,不閃爍

  • vue-router重新路由到當(dāng)前頁面,頁面是不進(jìn)行刷新的
  • 采用window.reload(),或者router.go(0)刷新時(shí),整個(gè)瀏覽器進(jìn)行了重新加載,閃爍,體驗(yàn)不好

那我們?cè)趺醋瞿兀?/strong>

跟上面的原理差不多,我們只在控制路由的組件中寫一個(gè)函數(shù)(使用v-if控制router-view的顯示隱藏,這里的原理不作贅述),然后把這個(gè)函數(shù)傳遞給后代,然后在后代組件中調(diào)用這個(gè)方法即可刷新路由啦。

//app.vue
<router-view v-if="isShowRouter"/>
export default {
  name: 'App',
  provide() {
    return {
      reload: this.reload
    }
  },
  data() {
    return {
      isShowRouter: true,
    }
  },
  methods:{
    reload() {
      this.isShowRouter = false;
      this.$nextTick(() => { 
        this.isShowRouter = true;
      })
    }
  }
}
//后代組件
export default {
  inject: ['reload'],  
}

這里 provide 使用了函數(shù)傳遞給后代,然后后代調(diào)用這個(gè)函數(shù),這種思路,也是可以做子后代向父組件傳參通訊的思路了。這里的原理,和 event 事件訂閱發(fā)布就很像了

11.通過 $root 訪問根實(shí)例??

通過 $root,任何組件都可以獲取當(dāng)前組件樹的根 Vue 實(shí)例,通過維護(hù)根實(shí)例上的 data,就可以實(shí)現(xiàn)組件間的數(shù)據(jù)共享。

//main.js 根實(shí)例
new Vue({
    el: '#app',
    store,
    router,
    // 根實(shí)例的 data 屬性,維護(hù)通用的數(shù)據(jù)
    data: function () {
        return {
            author: ''
        }
    },
    components: { App },
    template: '<App/>',
});
<!--組件A-->
<script>
export default {
    created() {
        this.$root.author = '于是乎'
    }
}
</script>
<!--組件B-->
<template>
    <div><span>本文作者</span>{{ $root.author }}</div>
</template>

注意:通過這種方式,雖然可以實(shí)現(xiàn)通信,但在應(yīng)用的任何部分,任何時(shí)間發(fā)生的任何數(shù)據(jù)變化,都不會(huì)留下變更的記錄,這對(duì)于稍復(fù)雜的應(yīng)用來說,調(diào)試是致命的,不建議在實(shí)際應(yīng)用中使用。

12. attrs與attrs 與 attrs與listenter??

多層嵌套組件傳遞數(shù)據(jù)時(shí),如果只是傳遞數(shù)據(jù),而不做中間處理的話就可以用這個(gè),比如父組件向?qū)O子組件傳遞數(shù)據(jù)時(shí)

$attrs:包含父作用域里除 class 和 style 除外的非 props 屬性集合。通過this.attrs獲取父作用域中所有符合條件的屬性集合,然后還要繼續(xù)傳給子組件內(nèi)部的其他組件,就可以通過v−bind = " attrs 獲取父作用域中所有符合條件的屬性集合,然后還要繼續(xù)傳給子組件內(nèi)部的其他組件,就可以通過 v-bind="attrs獲取父作用域中所有符合條件的屬性集合,然后還要繼續(xù)傳給子組件內(nèi)部的其他組件,就可以通過v−bind="attrs"

$listeners:包含父作用域里 .native 除外的監(jiān)聽事件集合。如果還要繼續(xù)傳給子組件內(nèi)部的其他組件,就可以通過 v-on=“$linteners”

使用方式是相同的:

// Parent.vue
<template>
    <child :name="name" title="1111" ></child>
</template
export default{
    data(){
        return {
            name:"小解"
        }
    }
}
// Child.vue
<template>
    // 繼續(xù)傳給孫子組件
    <sun-child v-bind="$attrs"></sun-child>
</template>
export default{
    props:["name"], // 這里可以接收,也可以不接收
    mounted(){
        // 如果props接收了name 就是 { title:1111 },否則就是{ name:"小解", title:1111 }
        console.log(this.$attrs)
    }
}

總結(jié)

常見使用場(chǎng)景可以分為三類:

  • 父子組件通信: props、$parent / $children provide / inject 、 ref \ $refs 、 $attrs / $listeners
  • 兄弟組件通信: eventBus 、 vuex、 自己實(shí)現(xiàn)簡(jiǎn)單的 Store 模式
  • 跨級(jí)通信: eventBus、 Vuex、 自己實(shí)現(xiàn)簡(jiǎn)單的 Store 模式、 provide / inject 、 $attrs / $listeners

以上就是vue的組件通訊方法總結(jié)大全的詳細(xì)內(nèi)容,更多關(guān)于vue組件通訊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue.js組件通信之自定義事件詳解

    Vue.js組件通信之自定義事件詳解

    這篇文章主要為大家詳細(xì)介紹了Vue.js組件通信之自定義事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • vue3.0使用mapState,mapGetters和mapActions的方式

    vue3.0使用mapState,mapGetters和mapActions的方式

    這篇文章主要介紹了vue3.0使用mapState,mapGetters和mapActions的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue實(shí)現(xiàn)抖音時(shí)間轉(zhuǎn)盤

    vue實(shí)現(xiàn)抖音時(shí)間轉(zhuǎn)盤

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)抖音時(shí)間轉(zhuǎn)盤,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 解決elementui中NavMenu導(dǎo)航菜單高亮問題(解決多種情況)

    解決elementui中NavMenu導(dǎo)航菜單高亮問題(解決多種情況)

    這篇文章主要介紹了解決elementui中NavMenu?導(dǎo)航菜單高亮問題(解決多種情況),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue elementUI select下拉框如何設(shè)置默認(rèn)值

    vue elementUI select下拉框如何設(shè)置默認(rèn)值

    這篇文章主要介紹了vue elementUI select下拉框如何設(shè)置默認(rèn)值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 詳解vue-class遷移vite的一次踩坑記錄

    詳解vue-class遷移vite的一次踩坑記錄

    本文主要介紹了vue-class遷移vite的一次踩坑記錄,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Laravel 如何在blade文件中使用Vue組件的示例代碼

    Laravel 如何在blade文件中使用Vue組件的示例代碼

    這篇文章主要介紹了Laravel 如何在blade文件中使用Vue組件,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 基于vue3+antDesign2+echarts?實(shí)現(xiàn)雷達(dá)圖效果

    基于vue3+antDesign2+echarts?實(shí)現(xiàn)雷達(dá)圖效果

    這篇文章主要介紹了基于vue3+antDesign2+echarts?實(shí)現(xiàn)雷達(dá)圖,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 詳解如何在Vue中快速實(shí)現(xiàn)數(shù)據(jù)可視化大屏展示

    詳解如何在Vue中快速實(shí)現(xiàn)數(shù)據(jù)可視化大屏展示

    在現(xiàn)代數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序中,數(shù)據(jù)可視化大屏已經(jīng)成為了非常重要的一環(huán),通過對(duì)海量數(shù)據(jù)進(jìn)行可視化展示,可以幫助用戶更好地理解和分析數(shù)據(jù),從而做出更加明智的決策,在Vue中進(jìn)行數(shù)據(jù)可視化大屏展示也變得越來越流行,本文將介紹如何在Vue中快速實(shí)現(xiàn)數(shù)據(jù)可視化大屏展示
    2023-10-10
  • 一個(gè)可復(fù)用的vue分頁組件

    一個(gè)可復(fù)用的vue分頁組件

    這篇文章主要為大家詳細(xì)介紹了一個(gè)可復(fù)用的vue分頁組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評(píng)論