2024年最新Vue(21),前端程序员必备

最后

基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。

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

在这里插入图片描述

示例的功能也可以使用Vue实例的选项methods方法实现,methods方法与计算属性区别是计算属性支持缓存,所以对遍历大数组或做大量计算时,计算属性更高效。

示例:使用计算属性实现对字符串数组根据关键字查找功能

字符串关键字:

    • {{ item }}

      // JavaScript代码:

      el: “#app”,

      data: {

      items:[…],

      wordKey:“”

      },

      computed: {

      findItems:function(){

      var _this=this;

      //根据条件过滤数组中的数据

      return _this.items.filter(function(val){

      return val.indexOf(_this.wordKey)!=-1;

      })

      }

      在这里插入图片描述

      2、实践练习(待更新)


      三、侦听属性

      =========================================================================

      1、侦听属性创建和使用


      • Vue提供了一种更通用的方式来观察和响应Vue实例上的数据变动:侦听属性。当有一些数据需要随着其他数据变动而变动时,就可以使用侦听属性watch

      • watch是一个对象,其中watch对象的属性是需要侦听的目标,一般是data中的某个数据项,而watch对象的属性值是一个函数,是被侦听的数据项发生变化时,需要执行的函数,这个函数有两个形参第一个当前值第二个更新后的值

      示例:使用watch侦听添加商品信息输入框,根据值的变化显示不同提示效果

      商品信息

      商品标题输入不能为空!

      {{ title }}》商品购买了{{ amount }}本,总计¥{{ total }}元

      // JavaScript代码:

      var vm = new Vue({

      el: “#app”,

      data: {

      title:“JavaScript权威指南”,

      price:“40”,

      amount:“10”,

      total:“0”,

      titleValid:true,

      priceValid:true,

      amountValid:true

      },

      watch: {

      title: function(newVal, oldVal){ … },

      price: function(newVal, oldVal){ … },

      amount: function(newVal, oldVal){ … },

      },

      })

      在这里插入图片描述

      watch选项参数中包含侦听了商品标题(title)商品价格(price)商品数量(amount)的值的变化的函数

      watch的一个特点是,最初绑定的时候是不会执行的,要等到商品单价和商品数量改变时才执行监听计算

      如果想要一开始让最初绑定的时候就执行,就需要watch中使用handler方法immediate属性

      handler()方法:其值是一个回调函数。即监听到变化时应该执行的函数。

      immediate属性:其值是true或false;确认是否以当前的初始值执行handler的函数。

      示例:修改上一个示例的watch中的price()如下代码

      // JavaScript代码:

      price:{

      // 之前写的watch的函数,其实默认写的就是handler

      handler:function(newVal, oldVal){

      },

      // 代表如果在wacth里声明了price之后,就会立即先去执行里面的handler方法

      immediate:true

      }

      在这里插入图片描述

      • 如果模型数据是一个对象时,Vue默认并不能侦听对象属性的变化,watch里面还有一个deep属性,默认值是false,代表是否深度侦听需要使用。
      • deep属性ture时,就能侦听对象属性的变化。

      2、实践练习(待更新)


      四、综合案例

      =========================================================================

      1、商品信息管理


      下面结合Vue的基础知识来实现商品信息的管理功能,其中包含包含以下功能:

      • 添加商品信息。
      • 显示全部商品信息列表。
      • 根据商品标题查询商品信息列表。
      • 删除商品信息。

      本节只使用JavaScriptCSSHTML实现前端部分,不涉及服务器端功能数据库部分

      实现添加商品信息功能

      • 创建视图
      • 定义模型
      • 定义添加方法

      // JavaScript代码:

      var vm = new Vue({

      el: “#app”,

      data: {

      …省略代码…

      },

      methods: {

      createProd: function () {

      this.products.push(this.newProduct);

      // 添加完newProduct对象后,重置newProduct对象

      this.newProduct = {

      name: “”,

      price: 0,

      category: “手机/数码”,

      }

      }

      }

      });

      实现显示全部商品信息列表

      名称 价格 类别 删除 {{ prod.name }} {{ prod.price | priceFormat }} {{ prod.category }}

      // JavaScript代码:

      var vm = new Vue({

      el: “#app”,

      data: {

      …省略代码…

      },

      // 为了正确显示价格采用过滤器进行格式处理

      methods: {

      …省略代码…

      },

      filters: {

      priceFormat: function (val) { // 创建价格格式过滤器

      return “¥” + parseInt(val).toFixed(2) + “元”;

      }

      }

      });

      实现根据商品标题查询商品信息列表

      …省略代码…

      …省略代码…

      // JavaScript代码:

      computed: {

      findProdList:function(){

      var _this=this;

      return _this.products.filter(function(prod){

      return prod.name.indexOf(_this.key)!=-1;

      });

      }

      }

      实现删除商品信息功能

      // JavaScript代码:

      var vm = new Vue({

      el: “#app”,

      data: {…省略代码…},

      filters: {…省略代码…},

      methods: {…省略代码…

      //添加deleteProd()方法

      deleteProd: function (index) {

      if (confirm(“删除当前商品信息吗?”)) {

      // 删除一个数组元素

      this.products.splice(index, 1);

      }

      }

      },

      computed: {…省略代码…}

      });

      最后

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

      给大家分享一些关于HTML的面试题。


      能`

      // JavaScript代码:

      var vm = new Vue({

      el: “#app”,

      data: {…省略代码…},

      filters: {…省略代码…},

      methods: {…省略代码…

      //添加deleteProd()方法

      deleteProd: function (index) {

      if (confirm(“删除当前商品信息吗?”)) {

      // 删除一个数组元素

      this.products.splice(index, 1);

      }

      }

      },

      computed: {…省略代码…}

      });

      最后

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

      给大家分享一些关于HTML的面试题。

      [外链图片转存中…(img-hgdV7k5h-1715067045478)]
      [外链图片转存中…(img-Mfw8myVQ-1715067045479)]

    • 3
      点赞
    • 8
      收藏
      觉得还不错? 一键收藏
    • 2
      评论

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

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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值