我是靠谱客的博主 感性大白,最近开发中收集的这篇文章主要介绍自己遇到的前端问题以及解答(持续更新),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

日常经验总结

怎么做出搜索框的左移动画效果?

可以给它上面盖一层,达到想要的效果。


计算属性没有监听到数据变化?

可能原因:computed中的计算属性若是根据某个对象中的某个属性监听时,我们必须要以对象的形式进行整体修改,而不是单个修改,否则触发不了计算属性的监听。

这里附赠一幅图解释


computed: {
hasFilter() {
let isActive = false
for (const key in this.form) {
if (key === 'createTime') {
if (this.form[key] && this.form[key].length !== 0) {
isActive = true
}
} else if ((key === 'applicationIndex' || key === 'processModelIndex') && this.form[key] === 0) {
isActive = true
}
}
if (this.form.applicationIds) {
isActive = true
}
if (this.form.processModelIds) {
isActive = true
}
if (this.keyWord) {
isActive = true
}
return isActive
}
}

怎么用是否有省略号(也就是text-overflow:ellipsis)作为判断条件?

暂时只知道可以用scrollWidth与clientWidth进行比较判断。


使用el-table,如何在el-table-column中使用对象类型的数据?

使用<template slot-scope="scope"></template>,通过scope.row获取到el-table中的当前行数据对象,从而获取到对应的对象数据。


.sync修饰符

扩展为一个自动更新父组件属性的v-on监听器,相当于在子组件中通过$emit给把props传过来的数据传入新值。例如:

<template>
   <div class="details">
       <myComponent :show.sync='valueChild' style="padding: 30px 20px 30px 5px;border:1px solid #ddd;margin-bottom: 10px;"></myComponent>
       <button @click="changeValue">toggle</button>
   </div>
</template>
<script>
import Vue from 'vue'
Vue.component('myComponent', {
     template: `<div v-if="show">
                   <p>默认初始值是{{show}},所以是显示的</p>
                   <button @click.stop="closeDiv">关闭</button>
                </div>`,
     props:['show'],
     methods: {
       closeDiv() {
         this.$emit('update:show', false); //触发 input 事件,并传入新值
     
}
   
}
})
export default{
   data(){
       return{
           valueChild:true,
     
}
 
},
   methods:{
       changeValue(){
           this.valueChild = !this.valueChild
     
}
 
}
}
</script>

路由传值并且跳转后,在当前路由界面刷新,获取的值全部消失???

解决办法:将传递的值包装成JSON对象,然后在目的路由解析即可解决问题。


在哪个生命周期内调用异步请求?

可以在钩子函数created、beforeMount、mounted中进行调用,因为在这三个钩子函数中,data已经创建,可以将服务端返回的数据进行赋值。但是推荐在created钩子函数中调用异步请求,以下几点优点:

  • 能更快获取到服务器端数据,减少页面loading时间;

  • ssr不支持beforeMount、mounted钩子函数,所以放在created中有助于一致性


父组件可以监听子组件的生命周期吗?

1、可以通过$emit方式在子组件中调用,达到父组件监听

2、可以通过@hook来监听,例如:

//Parent.vue
<Child @hook:mounted="doSomething"></Child>
​
doSomething() {
console.log('做事')
}
//Child.vue
mounted() {
console.log('触发mounted钩子函数')
}
//执行顺序:触发mounted钩子函数,做事
tips:@hook方法不仅仅可以监听mounted,其它的声明周期事件,例如created、updated都可以监听

为什么要解绑全局事件总线,解绑一般在当前当前组件的beforeDestroy中,使用$off解绑?

最后

以上就是感性大白为你收集整理的自己遇到的前端问题以及解答(持续更新)的全部内容,希望文章能够帮你解决自己遇到的前端问题以及解答(持续更新)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部