zoukankan      html  css  js  c++  java
  • 面试题

    1.MVC,MVVC,MVVM模式的理解

    1.1 MVC(Model-View-Controller)

    Model(模型):数据层,负责存储数据。

    View(视图):展现层,用户所看到的页面

    Controller(控制器):协调层,负责协调Model和View,根据用户在View上的动作在Model上作出对应的更改,同时将更改的信息返回到View上。

    三者之间的关系

    Controller可以直接访问Model,也可以直接控制View,但是Model和View不能相互通信,相当于COntroller就是介于这两者之间的协调者。

     

    1.2 MVVM(Model-View-ViewModel)

    Model(模型):数据层,负责存储数据。

    View(控制器):就是ViewController层,他的任务就是从ViewModel层获取数据,然后显示。

    ViewModel(视图模型):就是View和Model层的粘合剂,封装业务逻辑处理,封装网络处理,封装数据缓存。就是把原来ViewController层的业务逻辑和页面逻辑等剥离出来放到ViewModel层。

     

    1.3 MVVC(Model-View-View-Controller)

    Model(模型):数据层,负责存储数据。

    View(视图):展现层,创建需求创建cell

    View(视图):定义数组,用来接收控制中的数据。处理回调(比如:刷新回调、点击cell回调、加载更多回调、动态视图高度回调等等)

    Controller(控制器):加载网络数据懒加载

     
    2.Vue 有哪些指令?
    v-html、v-show、v-if、v-for等等
     
    3.v-if 和 v-show 有什么区别?

    v-show 仅仅控制元素的显示方式将 display 属性在 block 和 none 来回切换;而v-if会控制这个 DOM 节点的存在与否

    当我们需要经常切换某个元素的显示/隐藏时,使用v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理

     
    4.简述Vue的响应式原理

    当一个Vue实例创建时,vue会遍历data选项的属性,用 Object.defineProperty 将它们转为 getter/setter并且在内部追踪相关依赖,在属性被访问和修改时通知变化。

    每个组件实例都有相应的 watcher 程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的 setter 被调用时,会通知 watcher 重新计算,从而致使它关联的组件得以更新

     
    5.简述Vue的生命周
    它可以总共分为8个阶段:

    beforeCreate(创建前),

    created(创建后),

    beforeMount(载入前),

    mounted(载入后),

    beforeUpdate(更新前),

    updated(更新后),

    beforeDestroy(销毁前),

    destroyed(销毁后)

     
     
     
    6.vue中Computed 和 Watch的使用和区别

    6.1 计算属性computed适用的情形

    我们可能会有这样的需求,一个数据属性在它所依赖的属性发生变化时,也要发生变化,这种情况下,我们最好使用computed计算属性

    6.2 监听器watch适当的情形

    watch函数适用于,当数据发生变化时,执行异步操作或较大开销操作的情况。

     
    7.知道什么是vuex吗?

    在SPA单页面组件的开发中 Vue的vuex和React的Redux 都统称为统一状态管理,个人的理解是全局状态管理更合适;

    简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一个组件里进行获取、进行修改,并且你的修改可以得到全局的响应变更

    核心概念1: State

    state就是Vuex中的公共的状态, 我是将state看作是所有组件的data, 用于保存所有组件的公共数据.

    核心概念2: Getters

    我将getters属性理解为所有组件的computed属性, 也就是计算属性. vuex的官方文档也是说到可以将getter理解为store的计算属性, getters的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算。

    核心概念3: Mutations

    我将mutaions理解为store中的methods, mutations对象中保存着更改数据的回调函数,该函数名官方规定叫type, 第一个参数是state, 第二参数是payload, 也就是自定义的参数.

    核心概念4: Actions

    actions 类似于 mutations,不同在于:actions提交的是mutations而不是直接变更状态actions中可以包含异步操作, mutations中绝对不允许出现异步actions中的回调函数的第一个参数是context, 是一个与store实例具有相同属性和方法的对象

     
    8.Vue-自定义指令

    v-model,v-on,v-bind这一类的指令很经常使用,但有时候也不能满足我们的需求,比如我们想要通过v-focus(这个指令是vue不提供的)实现表单的焦点获取,就会遇到无指令提供的窘况。

    这个时候我们可以自定义指令,有个地方要注意下,如果使用了未定义的指令,vue会提出警告,程序依然会正常运行。

     

    8.1、比如定义一个全局可用的focus实现input选中,全局的东西如JS中的全局变量,一般不会用。

     
     

    8.2、定义局部指令,局部指令只在组件内部有效,超出组件范围则无效,类似局部变量的作用。

    vue给自定义指令提供了几个函数钩子,用于实现自定义指令的功能:

    bind: 指令第一次绑定到元素时调用,inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。

    update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。

    componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。unbind: 指令与元素解绑时调用。

    --------------------------------------------------------------------------------------------------------------------------------

     考察var 和 let 的区别  考察全局作用域  和 let 里的块级作用域

     

     

    -----------------------------------------------------------------------------------------------------------------------------------------------------

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    活到老,学到老。 踏实+激情+坚持
  • 相关阅读:
    <a>作Form表单提</a>
    图片读写分离
    MSSql ID自动增长删除数据重1开始
    WPF 控件
    Cookies
    MVC页面跳转
    MVC-各种传值方式
    mvc框架下,怎样用cookie实现下次自动登录
    SQL函数说明大全 (转)
    SQL日期(转)
  • 原文地址:https://www.cnblogs.com/andyZhang0511/p/11308766.html
Copyright © 2011-2022 走看看