2024年Web前端最新撸一遍vue的基础特性,Web前端技术功底不够如何去面试

最后

一个好的心态和一个坚持的心很重要,很多冲着高薪的人想学习前端,但是能学到最后的没有几个,遇到困难就放弃了,这种人到处都是,就是因为有的东西难,所以他的回报才很大,我们评判一个前端开发者是什么水平,就是他解决问题的能力有多强。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

分享一些前端面试题以及学习路线给大家

    • {{ index }}: {{ value }}
    • (2)对象,接收的参数上可以是三个,顺序是value, key, index

      • {{ index }}. {{ key }} : {{ value }}
      • 计算属性computed


        对于插值表达式中涉及到的复杂计算,建议用计算属性computed来替代。在new Vue时可以使用computed属性。

        // html中

        {{ reversedMessage }}

        // vue实例中

        computed: {

        reversedMessage: function() {

        return this.testMessage.split(‘’).reverse().join(‘’);

        }

        }

        这里只是一个倒序的算法,不算很复杂,只是举例说明。

        watch属性


        我们可以使用watch来进行侦听,来响应数据的变化。上面计算属性的应用,我们也可以改用watch来写:

        watch: {

        testMessage: function() {

        this.reversedMessage = this.testMessage.split(‘’).reverse().join(‘’);

        }

        }

        这里,我们通过侦听testMessage的变化来做出响应,用于改变reversedMessage的值。

        ps:那么computed和watch的应用场景怎么区分?

        个人认为,computed更适合做一些数据值的计算,而涉及到侦听某变量需要做一些业务处理时,建议使用watch。

        class绑定


        style绑定


        与class绑定类似,支持键值对语法(css键值对),也支持数组(多个样式对象同时作用)。

        双向绑定v-model


        这一特性与angular的[(ngModel)]是一致的。通常用于表单元素。

        Message is: {{ message }}

        不过v-model还支持很多修饰符,如

        (1).lazy

        (2).number

        自动将用户的输入值转为数值类型

        (3).trim

        自动过滤用户输入的首尾空白字符

        .sync


        看名字就知道了,同步的意思,如果绑定的属性加上这个修饰符,就实现了双向绑定。.sync破坏了单向数据流,于2.0 中移除,但又在 2.3.0 版本后以语法糖形式重新引入。

        父子组件通信


        父组件通过属性传递数据给子组件props,而子组件以this.$emit(eventname, data)的方式发事件给父组件,父组件模板中需要绑定对应事件。

        // 父组件模板,通过绑定greet传递数据给子组件,@replay接收来自子组件的事件。

        <child :greet=“greetMsg” @reply=“showReply”>

        // 子组件props属性接收

        props: [‘greet’]

        // 子组件模板

        Greet from Father Component: {{greet}}

        <button @click=“replyToFather”>Reply

        // 点击button时调用replyToFather方法,通过$emit发送事件给父组件。

        methods: {

        replyToFather: function() {

        this.$emit(‘reply’, this.replyInfo);

        }

        }

        slot


        类似angular的ng-content。父组件可以将想要的内容插在子组件的插槽中。子组件slot标签通过name属性区分插槽,如name=“slot1”,不写name属性的就是默认插槽了;而父组件要在传递给插槽的标签中加上slot属性来区分插在哪个槽中,如slot=“slot1”,如果不加slot属性,则自动插在默认插槽中。slot标签中的内容都被视为备用内容,如果父组件不给子组件传入内容,则会显示子组件slot标签中的备用内容。使用如下:

        Message From Father

        For Head

        For Foot

        Other information...

        head content…

        Backup content…

        foot content…

        作用域插槽


        官方提供的说明我不太看得懂,根据我个人的理解,一个很重要的应用场景就是用来抽象列表式组件。比如一个展示性的列表组件,但是具体展示图文,还是其他的,需要由其父组件来指定。我这里写了一个demo。

      • {{ props.item.moviename }}

          近期热映

          使用要点:

          (1)父组件通过属性绑定将数据(一般是数组,毕竟是用于列表展示嘛)传递给子组件。

          (2)父组件传递给子组件的内容用template标签包裹,template标签具备slot-scope=“props”,props来源于子组件slot标签绑定的属性集,而本例中slot标签绑定了item属性,所以template中的内容可以调用props.item下的属性。

          动态组件


          利用component标签及其is属性可以动态切换组件。curComponent的值为组件名。

          keep-alive标签

          利用keep-alive标签包裹component标签可以让切换组件保留在内存中,可以保留它的状态,避免重新渲染。

          ref属性


          ref属性实现了组件的引用,不过应当避免使用ref。

          this.$refs.refComp.refValue += ‘a’;

          transition过渡


          在组件外包裹一层transition标签,name标识transition,即可为组件加上过渡效果。如:

          Fade

          在进入/离开的过渡中,会有 6 个 class 切换,默认 class 名称格式如下。

          • fade-enter // 进入过渡开始,一般在这个class下定义-过渡开始时的css状态

          • fade-enter-active // 进入过渡活跃状态,一般在这个-class下定义进入过渡过程中的动画

          • fade-enter-to // 进入过渡结束,一般在这个class下定义过渡结束时的css状态。ps:离开过渡不再说明,类似开始过渡。

          • fade-leave // 离开过渡开始

          • fade-leave-active // 离开过渡活跃状态

          • fade-leave-to // 离开过渡结束

          我们也可以自定义过渡类名,需要增加transition标签的属性,这样就可以使用第三方的动画库了。用法如下:

          Fade

          过渡效果主要的应用场景有:

          • v-if

          • v-show

          • 动态组件

          transition有着一系列javascript钩子函数,从字面意思可以与过渡的class对应起来,如下所示:

          <transition

          :css=“false”

          @before-enter=“beforeEnter”

          @enter=“enter”

          @after-enter=“afterEnter”

          @enter-cancelled=“enterCancelled”

          @before-leave=“beforeLeave”

          @leave=“leave”

          @after-leave=“afterLeave”

          @leave-cancelled=“leaveCancelled”

          钩子函数都有参数el,用于引用添加了transition包裹的元素。enter和leave钩子函数中额外有一个参数done,done是一个回调函数,是必须在最后调用的。否则,它们会被同步调用,过渡会立即完成。

          enter: function (el, done) {

          // …

          done();

          }

          有了js钩子函数,那么我就可以不使用class来定义过渡的效果了,我可以使用js动画库,如velocity.js,这个时候最好添加v-bind:css=“false”,Vue 会跳过 CSS 的检测。这也可以避免过渡过程中 CSS 的影响。

          我们可以给元素设置初始渲染的过渡效果。

          appear拥有相同的class钩子和js钩子,也可以自定义类名。

          多个元素的过渡


          transition中多个元素过渡时,可以这样写,给每个元素加上key属性来作为唯一标识:

          Save

          Edit

          JavaScript 和 ES6

          在这个过程你会发现,有很多 JS 知识点你并不能更好的理解为什么这么设计,以及这样设计的好处是什么,这就逼着让你去学习这单个知识点的来龙去脉,去哪学?第一,书籍,我知道你不喜欢看,我最近通过刷大厂面试题整理了一份前端核心知识笔记,比较书籍更精简,一句废话都没有,这份笔记也让我通过跳槽从8k涨成20k。

          JavaScript部分截图

          如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】


          transition中多个元素过渡时,可以这样写,给每个元素加上key属性来作为唯一标识:

          Save

          Edit

          JavaScript 和 ES6

          在这个过程你会发现,有很多 JS 知识点你并不能更好的理解为什么这么设计,以及这样设计的好处是什么,这就逼着让你去学习这单个知识点的来龙去脉,去哪学?第一,书籍,我知道你不喜欢看,我最近通过刷大厂面试题整理了一份前端核心知识笔记,比较书籍更精简,一句废话都没有,这份笔记也让我通过跳槽从8k涨成20k。

          JavaScript部分截图

          如果你觉得对你有帮助,可以戳这里获取:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

        评论
        添加红包

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

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

        抵扣说明:

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

        余额充值