Vue基础

a、vue内置指令v-show与v-if的区别

v-show 是一个样式的切换,在页面渲染时已经加载;v-if是每次切换都是重新加载和销毁

b、vue动态绑定class

:class="{'isRed': isRed, 'isGreen': isGreen}"

:style="{color: color, fontSize: fontSize + 'px' }"

data() {

  return {

    isRed: true,

    isGreen: false,

    color:  '#e4e4e4',

    fontSize: 20,

}

}

 

c、自定义组件中的data为什么是函数呢?为什么new Vue的实例里data可以是一个对象呢?

  组件是用来复用的,js里对象是引用关系,如果作用域没有被隔离,就会出现冲突,所以组件的data是一个函数,状态用return返回;new Vue的实例是不会被复用的,不存才引用对象问题,所以data可以是对象。

d、vue计算属性(computed)和watch的区别?

computed是自动监听依赖值的变化,动态返回内容;watch是一个监听过程,在监听到值变化时可以处理一些逻辑;重要区别就在于你要怎么用,一般有两种情况:

1、如果你只需要动态值,比如对值做个换算什么的,就用computed

2、如果你想在知道值变化时要处理一些业务,比如重新渲染数据,那么就用watch

watch里面有配置项

data() {

  return {

    type: 'haight',

    sum:100,

}

},

computed: {

   count() {

       return sum + 'm'

   }

},

watch:{

    type: {

        handler(newVal, oldVal) {

      },

      deep: true,  // 是否深度监听

       immeditate: true, // 是否立即执行

    }

}

 

e、vue的单向数据流

单向数据主要出现在组件通信当中,父组件通过prop把数据传给子组件,但是这个prop只能是父组件设置,子组件不能,而且子组件还不能修改父组件prop过来的值。子组件想要修改父组件prop过来的值怎么办呢?

1、可以在自己组建中拷贝一个这个值在data中,data里面的值是可以修改的;

export default{

props: {

   parentVal: {

     type: String,

     default: ''

   }

},

data() {

  return {

    childrenVue: this.parentVal,

   }

}

 

2、用this.$emit()派发一个自定义事件给父组件修改,来达到修改值的效果

f、vue生命周期(常见的8个)

1、创建前后beforeCreate/creater

     在beforeCreate阶段,vue实例的挂载元素el和数据data都还是undefined,还没有初始化

    在created阶段$el还没有,$data有了

2、挂载前后beforeMount/mounded

    在beforeMount阶段,vue实例的$el和$data都初始化了,但还是挂载在之前未虚拟的dom节点,data还没有替换

    在mounded阶段,vue实例渲染挂载完成,data成功渲染

3、更新前后beforeUpdate/updated

    当vue实例的data变化时会触发beforeUpdate/updated这两个方法,但在项目中不常用这两个方法

4、销毁前后beforeDestory/destoryed

     beforeDestory阶段。出现在vue实例销毁前,一般在这里通过removeEventListener接触手动绑定事件,或者一些自定义的内存;

    destoryed在vue实例销毁之后触发

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值