vue错题库

1.$set是干什么的

首先,Vue实现双向绑定的原理就是利用了Object.define.property,重新定义了该方法获取属性值的get和设置属性值的set的操作来实现的

想要重新添加一个新的属性值,这个方法在object.define.property中没有定义,所以不是响应式的,会导致数据发生变化时不会触发视图更新,而$set可以解决这个问题

用法:this.$set(obj, "key", "value");

<!-- vue中$set的用法 -->
<template>
    <div>
      <h6>$set的用法</h6>
      <div>
        姓名:{{ userMessage.name }}
        <br />
        年龄:{{userMessage.age}}
        <br />
        爱好:{{userMessage.food}}
        <br />
        说明:{{userMessage.info.content}}
      </div>
    </div>
  </template>
  
  <script>
  export default {
    data() {
      return {
        userMessage: {
          name: "张小花",
          age: "16",
          message: {
            content: "最喜欢吃葡萄了",
          },
        },
      };
    },
    mounted() {
      console.log("this:", this);
      this.$set(this.userMessage, "food", "葡萄");
    }
  };
  </script>

2.$nextTick是干什么的

在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM

例如:在created生命周期中想要操作dom就可以使用

this.$nextTick(()=>{ ... })可以在mounted之前的生命周期中操作dom

1.再Dialog放入一个自定义的组件,并通过ref调用组件中的方法。

this.dialogVisible = true;
thist.$refs.editor.addNewFun();

这样调用报错:找不到addNew的定义

2.在显示出Dialog后再调用addNew()就没有问题啦

const that = this;
this.dialogVisible = true;
this.$nextTick(() => {
      that.$refs.editor.addNewFun();
});

3.mixin是干什么的

提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项

在src中创建一个mixins.js的文件夹

//在src中创建一个mixins.js的文件夹
let mixin = {
    created(){
        console.log('我是mixin里面的created!')
    },
    methods:{
        hello(){
            console.log('你好哇!我是mixin')
        }
    }

}
export default mixin

在views中创建一个vue文件夹

<template>
  <div class="home">
    <span>这 个 是 home 页</span>
  </div>
</template>
 
<script>
import MyMixins from "../mixins";   //导入混入(mixin)
export default {
  name: 'Home',
  mixins: [MyMixins]     //使用混入(mixin)
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值