Vue使用問(wèn)題記錄

vue_logo.png

Vue使用中遇到的問(wèn)題總結(jié)記錄。內(nèi)容比較基礎(chǔ),無(wú)奈我是菜鳥

1、Vue中字符串換行不起作用

<div>{{item.content}}</div>

content字符串很長(zhǎng),內(nèi)部的換行符\n不起作用。

由于Vue將其插值渲染成div內(nèi)部文本后,文本并不換行,換行符顯示為一個(gè)空格。解決:

<div style="white-space: pre-wrap;">{{item.content}}</div>

其中div不能換行,如果換行后 首行縮進(jìn)的距離很大。其實(shí)設(shè)置為pre即可使換行符發(fā)揮作用,但這時(shí)文本在div寬度不足時(shí)不會(huì)自動(dòng)換行,而是撞破邊界延伸到div外部去,所以還得加上wrap。

2、Vue數(shù)據(jù)對(duì)象嵌套對(duì)象時(shí)的實(shí)例聲明

var baseInfo = new Vue({
    el:'#id',
    data:{
        item: {}
    }

item中包含其他對(duì)象必須先聲明如下:

var baseInfo = new Vue({
    el:'#id',
    data:{
        item: {
            user:{}
        }
    }

否則會(huì)報(bào)錯(cuò)

TypeError: Cannot read property 'xxx' of undefined at js/p/vue.min.js:6

3、v-if v-else條件渲染

聲明格式

<div v-if="true">
//表達(dá)式為真,顯示
</div>
<div v-else>
//為假,顯示
</div>

v-if , v-else 中間不能有其他元素,以下是不能正確顯示的。

<div v-if="true">
//表達(dá)式為真,顯示
</div>
<div>其他元素,此時(shí)if else結(jié)構(gòu)被打亂 </div>
<div v-else>
//為假,顯示
</div>

4、計(jì)算屬性

當(dāng)需要對(duì)item中數(shù)據(jù)進(jìn)行轉(zhuǎn)化處理,比如日期格式化等其他操作,此時(shí)計(jì)算屬性正好。此時(shí)我的數(shù)據(jù)源是{}對(duì)象。

如果是[]數(shù)組,如果要對(duì)每一個(gè)進(jìn)行處理好像不行,查詢得知計(jì)算屬性不能參數(shù)。所以我是for循環(huán)自己每個(gè)處理一次。

var baseInfo = new Vue({
el:'#base-info-id',
data:{
    item: {
        user:{}
    }
},
computed:{
    user_name:function(){
        var d = this.item;
        var user = d['user'];
        var uname = user["name"] || user['nickName'];
        return uname;
    },
    avatar:function(){
        var d = this.item;
        var u_avatar = d['user']['avatar'] || "default.png";
        return u_avatar;
    },
    postDate:function(){
        var d = this.item;
        var s = d['postDate'];
        var t = dateUtils.format(s);
        return t;
    },
    images:function(){
        //添加圖片  
        var d = this.item;
        var igStr = d['images'];
        if(igStr != null && igStr.length > 0){
            var igurlArr = igStr.split(',');
            // console.log(igurlArr.length);
            return igurlArr;
        }
        return [];
    }
}
});

5、v-cloak

HTML 綁定 Vue實(shí)例,在頁(yè)面加載時(shí)會(huì)閃爍,如下在數(shù)據(jù)未賦值之前會(huì)顯示{{msg}}字符串,非常不好看。

///不加v-cloak
<div id="app">
    {{msg}}
</div>

解決如下:

///加v-cloak 防止頁(yè)面加載完成之前閃爍
<div id="app" v-cloak>
    {{msg}}
</div>

然后在css中添加
[v-cloak] {
  display: none;
}

6、{{s}} 其中s可以是個(gè)表達(dá)式

{{isTrue  ? '正確' : '錯(cuò)誤'}}

這樣簡(jiǎn)單的操作可直接替代v-if v-else,代碼更簡(jiǎn)潔。

持續(xù)更新

Hi 大家好!我是Light413,一名iOS開發(fā)者,寫代碼我是認(rèn)真的,即使看到一個(gè)多余的空格就會(huì)感覺(jué)不爽??。
喜歡前端及后臺(tái)開發(fā)。簡(jiǎn)書就是我的陣營(yíng),我喜歡在這里學(xué)習(xí),在這里分享。以后文章會(huì)不斷的更新,介紹關(guān)于iOS開發(fā)學(xué)習(xí)總結(jié) , 介紹基于MUI 、H5+ 及H5開發(fā)中感悟記錄總結(jié)。感覺(jué)有用就點(diǎn)贊哈,喜歡就大膽的關(guān)注。

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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