前端基础:Vue搞笑白话文(工作之余瞎写)

1、data:{}与data(){return{}}这两个是个什么鬼?

vue实例

new Vue({

    el:'#app',
    data:{
        name:'李四'

    }

})

组件实例

const aaa = Vue.extent({
    data(){
        return {
            name:''
        }
    }
})

为什么Vue实例可以那么写而组件实例就不行了?原因就是因为在底层原理上,组件是可以复用的,如果你把组件搞成相互可以变化就完了,看一下下边这些代码。

 let x1 = {
    a:1,
    b:2
   }
   let x2 = {}
  
   x2 = x1
   x1.a = 99
   console.log('获取内容', x1, x2)

这是为什么呢?这个牵扯到我们引用类型的变量直接给另外一个人相当于地址给了其他人,你把门的钥匙给了其他人这怎么能行呢?咱们改造一下。

function x1() {
      return {
        a:1,
        b:2
      }
    }
   let x2 = x1()
    let x3 = x1()
   x3.a = 99
   console.log('获取内容', x3, x2)

 

可以了, 这么神奇呢,其实就是相当于把主人通过一个函数给,而非像之前的直接自己给,所以在it的世界中,我们想要复用,用function return就是可以了

所以有了

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

2、数组方法push()和unshift()实现原理是个什么鬼?

push()末尾加,unshift()头加,常说的置顶

function pushDemo(arr,val) {
      arr[arr.length] = val
      return arr
    }

 那么我们如果在头部加的话就需要做一件事情需要把所有的元素往后边移动一位

function unshiftDemo(arr,val) {
      for (let i = arr.length;i>=0;--i) {
        arr[i] = arr[i-1]
      }
      arr[0] = val
      return arr
    }

3、写一个函数打印出来学生的平均成绩(二维数组)

 function average() {
      let arr = [[1,2,3],[4,5,6],[7,8,9]]
      let total = 0
      let avergeNum = 0.0
      for(let row = 0;row<arr.length;row++) {
        for(let i = 0;i<arr[row].length;i++){
          total += arr[row][i]
        }
        avergeNum = total/arr[row].length
        console.log('student' + parseInt(row+1) + 'averageNum' + avergeNum.toFixed(2))
        total = 0
        avergeNum = 0.0
      }
    }

4、VueComponent.prototype._proto_ === Vue.prototype 这个Vue的内置关系什么鬼?

其实VueComponent.prototype找到自己的原型再继续往上_proto_,Vue构造函数的原型,这两个指向同一个,我们想一想,一般原型最终会找到最终的Object,但是把VueComponent.prototype._proto_指向了Vue.prototype,这个有个好处就是所有Vue原型上边的方法,VueComponent都能够找到。乖乖,这就是最有灵感的地方。

稍微提一下,我们如何产生VueComponent,需要通过Vue.extend()来产生这个构造函数。

也就是说Vue的方法

  5、为啥Vue.config.js里边使用module.exports暴漏?

作为一个前端人员,整天敲啊敲,整天用的是import 用的是 exfort default,但是module.exoprts不常用,首先我们需要理解的是配置文件是管理整个项目的,而webpack是由common.js来开发的,这个Vue.config.js如果你配置了,那么这个就会跟webpack进行合并,进行覆盖按照你写的走,做到项目个性化。

相关推荐

  1. 前端Vue3基础知识点碎片

    2023-12-29 08:46:01       34 阅读
  2. 前端vue3

    2023-12-29 08:46:01       38 阅读
  3. 前端vue工程环境

    2023-12-29 08:46:01       55 阅读
  4. 一篇文章vue基础(上)

    2023-12-29 08:46:01       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-29 08:46:01       76 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-29 08:46:01       81 阅读
  3. 在Django里面运行非项目文件

    2023-12-29 08:46:01       65 阅读
  4. Python语言-面向对象

    2023-12-29 08:46:01       76 阅读

热门阅读

  1. c# 读取文件方式及对比

    2023-12-29 08:46:01       46 阅读
  2. uniapp中globaldata的使用

    2023-12-29 08:46:01       55 阅读
  3. 单例模式(C++)

    2023-12-29 08:46:01       46 阅读
  4. 单例模式的双重检查锁定是什么?

    2023-12-29 08:46:01       48 阅读
  5. 创建型--单例模式

    2023-12-29 08:46:01       57 阅读
  6. C#判断骨龄与生活年龄的比较

    2023-12-29 08:46:01       49 阅读
  7. [云原生] Go web工作流程

    2023-12-29 08:46:01       58 阅读
  8. react的render什么时候渲染?

    2023-12-29 08:46:01       51 阅读
  9. Linux安装Python3.12.0

    2023-12-29 08:46:01       54 阅读
  10. 表情串转换

    2023-12-29 08:46:01       54 阅读
  11. Ubuntu 2x.04 编译FFmpeg 脚本

    2023-12-29 08:46:01       61 阅读