VUE 开发知识个人记录

【前言】:本博客是经过本人实际验证后记录下来的一些有效的固定写法,便于后续自己直接拷贝粘贴,提高开发效率

1、div 设置宽度自适应文本内容:设置 div 节点的 class 为下面 auto-adjust-text-width

.auto-adjust-text-width {
  display: inline-block;
  white-space: nowrap;
}

2、使 div 节点具有上下或左右滑动的能力:style="overflow-y: scroll;" 或 style="overflow-x: scroll;"

<div style="overflow-y: scroll;"></div>
<div style="overflow-x: scroll;"></div>

3、设置宽高或边距:可以用 calc 计算方式,注意:如果直接用百分比表示的话,比如100%,那这是相对于父布局的比值,如果要相对于根布局,那就用vh或者vw,全屏宽度是固定的100vw,全屏高度是固定的100vh,25vw则表示相对于根布局宽度的25%,30vh则表示相对于根布局高度的30%,如果父布局就是根布局,那这两种单位就是等效的

width: calc((100% - 2px) / 2);
height: calc((20vh + 24px) * 2);

4、vue 退回到上一个界面

this.$router.go(-1);
//或者
this.$router.back();

5、数据集合过滤

let checkedList = this.dataList.filter(item => return item.checked);

6、数据对象取值

        6.1、明确知道 key 的名称如 name,那就可以直接获取:object.name

        例如:let object = { name1: 'AAA', name2: 'BBB'};

        则获取 object.name1 的值就是 ‘AAA’
        6.2、key 的名称是个变量如var key,具体是啥不明确,那可以通过object[key] 获取

        例如:let object = { name1: 'AAA', name2: 'BBB'};

        var key = 'name1';

        则获取 object[key] 的值就是 ‘AAA’

7、日期相关操作

//获取过去某一天的日期
getPastDate() {
    var currentDate = (new Date()).getTime();
    var tenYear = 10 * 365 * 24 * 60 * 60 * 1000;//10年前,每年按365天计算
    var pastResult = currentDate - tenYear ;
    var beginDate = new Date(pastResult);
    return beginDate;
}

//获取当前日期
getCurrentDate() {
    return new Date();
}

//日期转为字串
dateToString(date) {
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    if (month >= 1 && month <= 9) {
        month = '0' + month;
    }
    if (day >= 0 && day <= 9) {
        day = '0' + day;
    }
    var dateString = year + '-' + month + '-' + day;
    return dateString;
}

//字串转为日期
stringToDate(dateString) {
    return new Date(dateString);
}

8、渐变色设置:background-image: linear-gradient(180deg, #44D09B 0%, #009688 100%);

9、给 div 设置背景图片

.div-bg-style {
    width: 100%;
    height: 120px;
    border-radius: 5px;
    background-image: url('~@/assets/customer/visit-and-recept-item-bg.png');
    background-size: cover;
    // background-size: calc(100%) 100%;
}

/**
background-size 取值说明:
1、auto:此值为默认值,保持背景图片的原始高度和宽度;
2、<length>此值设置具体的值,可以改变背景图片的大小;
3、<percentage>此值为百分值,可以是0%〜100%之间任何值,但此值只能应用在块元素上,所设置百分值将使用背景图片大小根据所在元素的宽度的百分比来计算。
4、cover:此值是将图片放大,以适合铺满整个容器,这个主要运用在,当图片小于容器时,又无法使用background-repeat来实现时,我们就可以采用cover;将背景图片放大到适合容器的大小,但这种方法会使用背景图片失真;
5、contain:此值刚好与cover相反,其主要是将背景图片缩小,以适合铺满整个容器,这个主要运用在,当背景图片大于元素容器时,而又需要将背景图片全部显示出来,此时我们就可以使用contain将图片缩小到适合容器大小为止,这种方法同样会使用图片失真。
6:当background-size取值为<length>和<percentage>时可以设置两个值,也可以设置一个值,当只取一个值时,第二个值相当于auto,但这里的auto并不会使背景图片的高度保持自己原始高度,而会与第一个值相同。
*/

10、设置透明背景色:background-color: rgba(68, 121, 255, 0.09);

11、控件属性定制:

.left /deep/ .van-field__control {
    text-align: left;
}

>>>.van-field__control {
    text-align: left;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Vue.js 3 中有一个新的功能叫做 "Proxy",它可以用于在运行时监视对象的属性访问,从而实现数据响应式。 使用 Proxy 可以方便地实现一些功能,例如观察者模式(observer pattern)、数据校验、日志记录等。 例如,你可以使用 Proxy 实现一个简单的数据绑定: ``` const data = { name: 'John', age: 30 } const proxy = new Proxy(data, { get(target, key) { console.log(`getting ${key}: ${target[key]}`) return target[key] }, set(target, key, value) { console.log(`setting ${key}: ${value}`) target[key] = value } }) proxy.name // getting name: John proxy.age = 35 // setting age: 35 ``` 这样,每当访问或修改 `proxy.name` 或 `proxy.age` 时,都会在控制台输出相应的信息。 注意,Proxy 仅能监视对象的属性访问,如果你想监视数组的变化,可以使用另一个新的功能叫做 "Reflect.observe"。 ### 回答2: Vue 3中引入了Proxy作为其响应式系统的基础,Vue 3的Proxy与Vue 2的Object.defineProperty相比具有以下优势: 1. 更强大的监测能力:Proxy可以监测对象的属性的读取、赋值、删除操作,而Object.defineProperty只可以监测属性的读取和赋值操作。 2. 更直观的语法:使用Proxy不需要像Vue 2那样需要在数据对象上预先定义属性,而是直接通过Proxy包裹整个对象,可以动态地监听对象上的所有属性,使得代码更加简洁。 3. 更好的性能:Proxy在底层使用了C++编写,比Object.defineProperty的纯JavaScript实现更高效,性能更好。 4. 更多的拦截操作:Proxy提供了多个拦截操作的钩子,比如get、set、deleteProperty、has等,可以在这些钩子中自定义一些逻辑,非常灵活。 尽管Proxy具有上述优势,但也需要注意以下几点: 1. 兼容性问题:Proxy是ES6中的新特性,并不是所有的浏览器和运行环境都支持,需要根据使用场景考虑兼容性问题。 2. 需要使用者具备一定的JavaScript知识:相比Vue 2的Object.defineProperty方案,使用Proxy需要对JavaScript的原生API有一定的了解和熟悉。 总的来说,Vue 3中的Proxy为响应式系统提供了更强大、更直观、更高效的解决方案,使得开发者可以更方便地处理数据的响应式更新。它在未来的前端开发中有着广泛的应用前景,并将持续发挥重要的作用。 ### 回答3: Vue 3中引入了Proxy(代理)的概念,这是一种可以拦截并监视目标对象上操作的功能。Proxy可以在对象上定义自定义的操作,包括读取、设置、删除和枚举属性等。Proxy是对目标对象进行包装,通过拦截并重定义一系列操作,使得我们可以在操作前后执行自定义的逻辑。 使用Proxy的优势在于可以更加灵活地控制对象的行为。通过在Proxy上添加拦截器,可以截获和处理目标对象的操作。例如,我们可以在读取属性前进行一些逻辑处理,或者在设置属性时进行一些验证。 在Vue 3中,我们可以使用Proxy来监听data数据的变化,并自动更新对应的视图。这比Vue 2中使用Object.defineProperty的方式更加灵活和高效。此外,Proxy还可以用于实现响应式数据、数据验证、数据缓存等。 例如,如果我们有一个数据对象data,我们可以通过创建Proxy实例来监听其属性的变化: ```javascript let data = { name: '小明', age: 20 } let proxy = new Proxy(data, { get(target, key) { console.log('正在读取属性' + key) return Reflect.get(target, key) }, set(target, key, value) { console.log('正在设置属性' + key + '为' + value) return Reflect.set(target, key, value) } }) console.log(proxy.name) // 打印'正在读取属性name',并且输出'小明' proxy.age = 18 // 打印'正在设置属性age为18',data对象的age属性值被修改为18 ``` 通过以上代码,我们可以看到,通过Proxy的代理,我们能够监听到数据对象的读取和设置操作,并且可以自定义处理逻辑。 总之,Vue 3中引入的Proxy为我们提供了更加灵活和高效的方式来处理对象的操作,可以在很大程度上改善程序的可维护性和可拓展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

却染人间愁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值