vue2.0移除或更改的一些東西(移除index key)
一、vue2.0移除了$index和$key
雖然說(shuō)現(xiàn)在很多文章說(shuō)他們的代碼是vue2.0版本的,但是有一些仔細(xì)一看,發(fā)現(xiàn)并不全是2.0版本,有些語(yǔ)法還是1.0的版本,比如這個(gè)$index,$key,這兩個(gè)壓根就不是2.0的寫(xiě)法,2.0早就把這兩個(gè)給刪除了,我們先來(lái)看看之前的列表渲染是怎么寫(xiě)的
<template>
<div class="hello">
<ul>
<li v-for="item in list">{{$index}}--{{$key}}</li>
</ul>
</div>
</template>
<script>
export default {
data(){
return{
list:['姓名','性別','年齡','語(yǔ)文','數(shù)學(xué)','英語(yǔ)','總分']
}
}
}
</script>
這種寫(xiě)法在2.0的環(huán)境下雖然可以運(yùn)行

但是在控制臺(tái)卻出錯(cuò)了

$index和$key沒(méi)有定義,而且在頁(yè)面上也沒(méi)有渲染出這兩個(gè)東西的效果,$index是索引,$key是鍵值

在vue2.0中,這種寫(xiě)法改為了
<template>
<div class="hello">
<ul>
<li v-for="(index,item) in list">{{index}}--{{item}}</li>
</ul>
</div>
</template>
得到的頁(yè)面效果如下

當(dāng)然,這個(gè)問(wèn)題有很多人寫(xiě)博客提到過(guò),我這里就匯總一下
二、$refs和$els
我在vue2.8.2的版本下使用$refs和$els獲取元素的時(shí)候,出現(xiàn)了一些問(wèn)題,當(dāng)然可能不止是2.8.2版本,其他的版本我還沒(méi)試過(guò),如果有跟我相同的問(wèn)題的話可以試試看這種方法。我們先來(lái)使用$els
<template>
<div class="hello">
<div class="v-t" v-el:v-t>
<button @click="getElement">測(cè)試</button>
</div>
</div>
</template>
<script>
export default {
methods:{
getElement(){
let element=this.$els.vT
console.log(element)
}
}
}
</script>
v-el用橫杠寫(xiě)法,在用$els的時(shí)候用駝峰寫(xiě)法,我在2.8.2版本的vue環(huán)境下是獲取不了的

我們?cè)賮?lái)使用$refs獲取元素節(jié)點(diǎn),我們先用這種方法試試看
<template>
<div class="hello">
<div class="v-t" ref="vt">
<button @click="getElement">測(cè)試</button>
</div>
</div>
</template>
<script>
export default {
methods:{
getElement(){
let element=this.$refs.vt
console.log(element)
}
}
}
</script>
這種方法是可以獲取到的

接下來(lái)我們?cè)囋嚳催@種寫(xiě)法
<template>
<div class="hello">
<div class="v-t" ref="v-t">
<button @click="getElement">測(cè)試</button>
</div>
</div>
</template>
<script>
export default {
methods:{
getElement(){
let element=this.$refs['v-t']
console.log(element)
}
}
}
</script>
也是可以獲取得到class為v-t的元素

關(guān)于ref注冊(cè)時(shí)間的重要說(shuō)明: 因?yàn)閞ef本身是作為渲染結(jié)果被創(chuàng)建的,在初始渲染的時(shí)候你不能訪問(wèn)它們 - 它們還不存在!$refs 也不是響應(yīng)式的,因此你不應(yīng)該試圖用它在模版中做數(shù)據(jù)綁定。----引用自vue.js官方文檔
三、transition
Vue 提供了 transition 的封裝組件,比如我們現(xiàn)在要實(shí)現(xiàn)一種效果:點(diǎn)擊一個(gè)按鈕之后,緩慢出現(xiàn)一個(gè)有背景顏色的div,點(diǎn)擊div里面的關(guān)閉按鈕之后,div緩慢消失。有一種寫(xiě)法是這樣的
<template>
<div class="hello">
<button @click="show">開(kāi)啟</button>
<div class="box" v-show="this.tf" transition="fade">
<button @click="hide">關(guān)閉</button>
</div>
</div>
</template>
<script>
export default {
data(){
return{
tf:false
}
},
methods:{
show(){
this.tf=true
},
hide(){
this.tf=false
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style>
.box{
width:177px;
height:177px;
transition:all 0.5s
}
.fade-transition{
opacity:1;
background:rgba(7,17,27,0.8);
}
.fade-enter,.fade-leave{
opacity:0;
background:rgba(7,17,27,0);
}
</style>
這種寫(xiě)法在有些版本運(yùn)行是有效果的,但是在2.8.0版本下卻沒(méi)有效果,點(diǎn)擊開(kāi)啟按鈕之后只出現(xiàn)一個(gè)關(guān)閉按鈕,現(xiàn)在我們更改一下寫(xiě)法
<template>
<div class="hello">
<button @click="show">開(kāi)啟</button>
<transition>
<div class="box" v-show="this.tf">
<button @click="hide">關(guān)閉</button>
</div>
</transition>
</div>
</template>
<script>
export default {
data(){
return{
tf:false
}
},
methods:{
show(){
this.tf=true
},
hide(){
this.tf=false
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style>
.box{
width:177px;
height:177px;
background:rgba(7,17,27,0.8);
}
.v-enter-active,.v-leave-active{
transition: opacity 0.5s
}
.v-enter,.v-leave-to{
opacity: 0
}
</style>
這種寫(xiě)法就有效果了,這是根據(jù)官方文檔寫(xiě)的,實(shí)現(xiàn)之后效果是這樣的

四、結(jié)語(yǔ)
這是我最近學(xué)習(xí)遇到的一些小問(wèn)題,有時(shí)候看視頻,別人寫(xiě)的代碼照著敲,我們敲完之后可能都還運(yùn)行不了,這時(shí)候有可能是版本問(wèn)題,框架更新了,語(yǔ)法不一樣了等等。現(xiàn)在一些框架更新太快了,對(duì)我們這些碼農(nóng)來(lái)說(shuō)確實(shí)挺考驗(yàn)的。
相關(guān)文章
使用Vue.js創(chuàng)建一個(gè)時(shí)間跟蹤的單頁(yè)應(yīng)用
這篇文章主要介紹了使用Vue.js創(chuàng)建一個(gè)時(shí)間跟蹤的單頁(yè)應(yīng)用的相關(guān)資料,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
調(diào)用createApp?時(shí)Vue工作過(guò)程原理
這篇文章主要為大家介紹了調(diào)用createApp?時(shí)Vue工作過(guò)程原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
淺談vue中使用編輯器vue-quill-editor踩過(guò)的坑
這篇文章主要介紹了淺談vue中使用編輯器vue-quill-editor踩過(guò)的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
Vue數(shù)據(jù)監(jiān)聽(tīng)器watch和watchEffect的使用
今天我們來(lái)學(xué)習(xí)一下watch監(jiān)聽(tīng)器和它的好兄弟watchEffect監(jiān)聽(tīng)器。這個(gè)相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,用的不是很多,當(dāng)然了,根據(jù)自己的項(xiàng)目情況自行決定使用,希望對(duì)大家有所幫助2023-02-02
vue 動(dòng)態(tài)組件用法示例小結(jié)
這篇文章主要介紹了vue 動(dòng)態(tài)組件用法,結(jié)合實(shí)例形式總結(jié)分析了vue 動(dòng)態(tài)組件基本功能、原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
element?ui組件中element.style怎么改詳解
element.style是一種內(nèi)聯(lián)樣式,一般都是代碼里寫(xiě)死的,下面這篇文章主要給大家介紹了關(guān)于element?ui組件中element.style怎么改的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
Vue?3?中動(dòng)態(tài)賦值?ref?的應(yīng)用示例解析
Vue3引入了Composition?API,其中ref是核心概念,允許開(kāi)發(fā)者聲明響應(yīng)式狀態(tài),本文通過(guò)一個(gè)具體示例,探討了在Vue3中如何使用ref進(jìn)行動(dòng)態(tài)賦值,尤其是在處理DOM相關(guān)操作時(shí)的應(yīng)用,通過(guò)ref動(dòng)態(tài)賦值,可以有效管理組件內(nèi)的狀態(tài),提高代碼的可維護(hù)性和清晰度2024-09-09
詳解vue2.0 transition 多個(gè)元素嵌套使用過(guò)渡
這篇文章主要介紹了詳解vue2.0 transition 多個(gè)元素嵌套使用過(guò)渡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Vue百度地圖實(shí)現(xiàn)定位和marker拖拽監(jiān)聽(tīng)功能
這篇文章主要介紹了Vue百度地圖實(shí)現(xiàn)定位和marker拖拽監(jiān)聽(tīng)功能,實(shí)現(xiàn)思路非常簡(jiǎn)單,本文結(jié)合實(shí)例代碼效果圖給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11

