前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue使用问题记录

Vue使用问题记录

作者头像
Light413
发布2020-04-08 16:05:09
1.4K0
发布2020-04-08 16:05:09
举报
文章被收录于专栏:我是做APP开发的

vue_logo.png

Vue使用中遇到的问题总结记录。内容比较基础,无奈我是菜鸟

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

代码语言:javascript
复制
<div>{{item.content}}</div>

content字符串很长,内部的换行符\n不起作用。

由于Vue将其插值渲染成div内部文本后,文本并不换行,换行符显示为一个空格。解决:

代码语言:javascript
复制
<div style="white-space: pre-wrap;">{{item.content}}</div>

其中div不能换行,如果换行后 首行缩进的距离很大。其实设置为pre即可使换行符发挥作用,但这时文本在div宽度不足时不会自动换行,而是撞破边界延伸到div外部去,所以还得加上wrap。

2、Vue数据对象嵌套对象时的实例声明

代码语言:javascript
复制
var baseInfo = new Vue({
    el:'#id',
    data:{
        item: {}
    }

item中包含其他对象必须先声明如下:

代码语言:javascript
复制
var baseInfo = new Vue({
    el:'#id',
    data:{
        item: {
            user:{}
        }
    }

否则会报错

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

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

声明格式

代码语言:javascript
复制
<div v-if="true">
//表达式为真,显示
</div>
<div v-else>
//为假,显示
</div>

v-if , v-else 中间不能有其他元素,以下是不能正确显示的。

代码语言:javascript
复制
<div v-if="true">
//表达式为真,显示
</div>
<div>其他元素,此时if else结构被打乱 </div>
<div v-else>
//为假,显示
</div>

4、计算属性

当需要对item中数据进行转化处理,比如日期格式化等其他操作,此时计算属性正好。此时我的数据源是{}对象。

如果是[]数组,如果要对每一个进行处理好像不行,查询得知计算属性不能参数。所以我是for循环自己每个处理一次。

代码语言:javascript
复制
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实例,在页面加载时会闪烁,如下在数据未赋值之前会显示{{msg}}字符串,非常不好看。

代码语言:javascript
复制
///不加v-cloak
<div id="app">
    {{msg}}
</div>

解决如下:

代码语言:javascript
复制
///加v-cloak 防止页面加载完成之前闪烁
<div id="app" v-cloak>
    {{msg}}
</div>

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

6、{{s}} 其中s可以是个表达式

代码语言:javascript
复制
{{isTrue  ? '正确' : '错误'}}

这样简单的操作可直接替代v-if v-else,代码更简洁。

持续更新

Hi 大家好!我是Light413,一名iOS开发者,写代码我是认真的,即使看到一个多余的空格就会感觉不爽?。 喜欢前端及后台开发。简书就是我的阵营,我喜欢在这里学习,在这里分享。以后文章会不断的更新,介绍关于iOS开发学习总结 , 介绍基于MUI 、H5+ 及H5开发中感悟记录总结。感觉有用就点赞哈,喜欢就大胆的关注。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、Vue中字符串换行不起作用
  • 2、Vue数据对象嵌套对象时的实例声明
  • 3、v-if v-else条件渲染
  • 4、计算属性
  • 5、v-cloak
  • 6、{{s}} 其中s可以是个表达式
    • 持续更新
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档