最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中的ref使用及說明

 更新時間:2026年05月02日 14:31:34   作者:han_hanker  
文章介紹了Vue中`ref`的的三種用法,以及`attrs`父子組件之間值傳遞的方法,此外,還講解了`v-model`、`props`和`$attrs`的的使用問題,以及`sync`的的簡單寫法,最后提醒大家在使用這些語法糖時要確保代碼的正確性和可易的性

基本用法

ref 有三種用法:

1、ref 加在普通的元素上,用this.ref.name 獲取到的是dom元素

2、ref 加在子組件上,用this.ref.name 獲取到的是組件實例,可以使用組件的所有方法。

3、如何利用 v-for 和 ref 獲取一組數(shù)組或者dom 節(jié)點

  

第1,2種情況 

this.$refs 獲取了所有設(shè)置ref屬性的元素(如有重名那么會被覆蓋)  

如果是普通的元素那返回的是一個普通的dom,如果ref放在vue組件里,那么返回的是一個vue對象,這個對象包含了這個組件的各種信息

  

第3種情況

  

  

如圖所示這樣使用

this.$refs.g1 獲取得是vue組件對象的集合,就不覆蓋了

$attrs

父子之間值傳遞,我們一般用的是在屬性里設(shè)置,采用:prop="prop"的格式

在子級的props定義接受,然后可以直接使用,

若props里沒有定義,那么可以使用this.$attrs里獲取沒有定義的值,

如下圖

圖中定義了3個屬性(v-model也是個特殊的屬性,在props中可以用 value來接收)

那$attrs的值是什么呢?

是除了props里已經(jīng)定義接收了的傳值, 就剩下了grand-id這個屬性

如果還有孫子級的組件, 我們還可以用

v-bind="$attrs"

這種方式再次傳遞到孫子級的頁面,孫子級仍然可以使用props來獲取。如果不使用props,那么還可以依舊使用this.$attrs來獲取,

這個相當于搭了個橋,

如上圖所示,this.attrs里面為grandId:1,我們使用v−bind="this.attrs里面為{grandId:1}, 我們使用v-bind="this.attrsgrandId:1,使vbind="this.attrs" 同等于 v-bind:grandId=“1”.這是只有一個屬性值,所以差別不大,如果有多個屬性值,那就不需要我們寫了。直接借你一用,把各個需要傳遞給子孫級的數(shù)據(jù),直接傳到了目的地

語法糖的問題

在看同事代碼的時候,發(fā)現(xiàn)在改變子級元素的值的時候,直接去改變了父級的值。沒有用vuex,沒有用emit。

其實還是用了emit,只是一些語法糖

v-model

如上面所展示代碼

用v-model綁定了元素,在子級里面props接收到了value的值。

用該值初始化了inputValue,并監(jiān)聽emit了一個input事件。

在第一幅圖里 v-model里綁定的值,也跟著改變了。

相當于

還是相當于在父級上綁上了一個事件,只是為了簡單寫法,省略一些東西

.sync

普通屬性呢?其實也有一種簡單的寫法。

<template>
  <div class="dashboard-container">
    {{ object }}
    <text1 v-model="object.v" :changep.sync="object.p" />
  </div>
</template>

<script>

import text1 from './text'

export default {
  components: {
    text1
  },
  data() {
    return {
      object: {
        v: 1,
        p: 2
      }

    }
  }
}
</script>


<!--
 * @Author: hanker
 * @LastEditors: hanker
 * @Description:
-->
<template>
  <div class="">
    <el-input v-model="inputValue" />
    <el-button @click="clickHandle">點擊改變p</el-button>
  </div>
</template>

<script>
// import x from ''
export default {
  components: {

  },
  props: {

  },
  data() {
    return {
      inputValue: this.value
    }
  },
  computed: {

  },
  watch: {
    inputValue(newValue) {
      this.$emit('input', newValue)
    }
  },
  mounted() {

  },
  methods: {
    clickHandle() {
      const p = '改變了對應(yīng)的p'
      this.$emit('update:changep', p)
    }
  }
}
</script>

<style lang='scss' scoped>
//@import url()

</style>

在看一些vue開源的后臺管理系統(tǒng)的時候,常??吹竭@些快捷寫法,大家不要慌。百度一下,完事大吉

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue.js添加一些觸摸事件以及安裝fastclick的實例

    vue.js添加一些觸摸事件以及安裝fastclick的實例

    今天小編就為大家分享一篇vue.js添加一些觸摸事件以及安裝fastclick的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 淺談vue引入css,less遇到的坑和解決方法

    淺談vue引入css,less遇到的坑和解決方法

    下面小編就為大家分享一篇淺談vue引入css,less遇到的坑和解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • 在vue項目中使用Jquery-contextmenu插件的步驟講解

    在vue項目中使用Jquery-contextmenu插件的步驟講解

    今天小編就為大家分享一篇關(guān)于在vue項目中使用Jquery-contextmenu插件的步驟講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • npm?install安裝報錯的幾種常見情況

    npm?install安裝報錯的幾種常見情況

    當你跑起一個項目的時候,第一步需要先安裝依賴npm install,下面這篇文章主要給大家介紹了關(guān)于npm?install安裝報錯的幾種常見情況,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • 解決iview多表頭動態(tài)更改列元素發(fā)生的錯誤的方法

    解決iview多表頭動態(tài)更改列元素發(fā)生的錯誤的方法

    這篇文章主要介紹了解決iview多表頭動態(tài)更改列元素發(fā)生的錯誤的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Vuex?Actions多參數(shù)傳遞的解決方案

    Vuex?Actions多參數(shù)傳遞的解決方案

    在?Vuex?中,actions?的設(shè)計默認只支持單個參數(shù)傳遞,這有時會限制我們的使用場景,下面我將詳細介紹幾種處理多參數(shù)傳遞的解決方案,從基礎(chǔ)到高級,幫助您靈活應(yīng)對各種需求,需要的朋友可以參考下
    2025-04-04
  • vite打包只生成了一個css和js文件問題的解決方法

    vite打包只生成了一個css和js文件問題的解決方法

    今天整了一個項目,試了下打包,發(fā)下打包后只生成了一個css文件,和一個js文件,這樣肯定是不行的,因為這樣這個文件的包大小很大,第一次訪問會導(dǎo)致白屏問題,所以本文給大家介紹了vite打包只生成了一個css和js文件問題的解決方法,需要的朋友可以參考下
    2024-05-05
  • Vue路由history模式解決404問題的幾種方法

    Vue路由history模式解決404問題的幾種方法

    這篇文章主要介紹了Vue路由history模式解決404問題的幾種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue?路由跳轉(zhuǎn)打開新窗口被瀏覽器攔截問題處理

    vue?路由跳轉(zhuǎn)打開新窗口被瀏覽器攔截問題處理

    這篇文章主要介紹了vue?路由跳轉(zhuǎn)打開新窗口被瀏覽器攔截問題處理,下面文章操作中所遇到相關(guān)問題解決的內(nèi)容介紹詳細,需要的小伙伴可以參考一下
    2022-03-03
  • 基于Vue3文件拖拽上傳功能實現(xiàn)

    基于Vue3文件拖拽上傳功能實現(xiàn)

    這篇文章主要介紹了Vue3文件拖拽上傳功能,支持拖拽到此區(qū)域上傳,支持選擇多個文件/文件夾,代碼很簡單,對vue3拖拽上傳功能感興趣的朋友一起看看吧
    2022-10-10

最新評論

临江市| 垫江县| 蓝山县| 博白县| 玛曲县| 永昌县| 宁津县| 广西| 馆陶县| 汕尾市| 桂东县| 社会| 临洮县| 中山市| 顺昌县| 大方县| 天津市| 孙吴县| 固始县| 年辖:市辖区| 江门市| 克山县| 鹤峰县| 自贡市| 永靖县| 称多县| 望都县| 洪湖市| 佛学| 海淀区| 金平| 隆林| 黔南| 阳原县| 策勒县| 义乌市| 北票市| 定兴县| 若羌县| 稻城县| 高密市|