撩课-Web大前端每天5道面试题-Day22
1.mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?
mvc和mvvm其实区别并不大。 都是一种设计思想。 主要就是mvc中Controller演变成mvvm中的viewModel。 mvvm主要解决了mvc中大量的DOM 操作使页面渲染性能降低, 加载速度变慢,影响用户体验。 区别: vue数据驱动,
通过数据来显示视图层而不是节点操作。 场景:
数据操作比较多的场景,更加便捷
2.vue的优点是什么?
低耦合。 视图(View)可以独立于Model变化和修改,
一个ViewModel可以绑定到不同的"View"上,
当View变化的时候Model可以不变,
当Model变化的时候View也可以不变。
可重用性。 你可以把一些视图逻辑放在一个ViewModel里面,
让很多view重用这段视图逻辑。
独立开发。
开发人员可以专注于业务逻辑和数据的开发(ViewModel),
设计人员可以专注于页面设计。
可测试。 界面素来是比较难于测试的,
而现在测试可以针对ViewModel来写。
3.vue.cli中怎样使用自定义的组件?有遇到过哪些问题吗?
第一步:
在components目录新建你的组件文件(indexPage.vue),
script一定要export default {} 第二步:
在需要用的页面(组件)中导入:
import indexPage from '@/components/indexPage.vue' 第三步:
注入到vue的子组件的components属性上面,components:{indexPage} 第四步:
在template视图view中使用,
例如有indexPage命名,
使用的时候则index-page
4.请列举出3个Vue中常用的生命周期钩子函数?
created: 实例已经创建完成之后调用,
在这一步,实例已经完成数据观测,
属性和方法的运算, watch/event事件回调.
然而, 挂载阶段还没有开始,
$el属性目前还不可见 mounted: el被新创建的 vm.$el 替换,
并挂载到实例上去之后调用该钩子。
如果 root 实例挂载了一个文档内元素,
当 mounted 被调用时 vm.$el 也在文档内。
activated: keep-alive组件激活时调用
5.vue如何自定义一个过滤器?
html代码: <div id="app">
<input type="text" v-model="msg" />
{{msg| capitalize }}
</div> JS代码: var vm=new Vue({
el:"#app",
data:{
msg:''
},
filters: {
capitalize: function (value) {
if (!value) return ''
value = value.toString()
return value.charAt().toUpperCase() + value.slice()
}
}
}) 全局定义过滤器 Vue.filter('capitalize', function (value) {
if (!value) return ''
value = value.toString()
return value.charAt().toUpperCase() + value.slice()
}) 过滤器接收表达式的值 (msg) 作为第一个参数。
capitalize 过滤器将会收到 msg的值作为第一个参数。
撩课-Web大前端每天5道面试题-Day22的更多相关文章
- 撩课-Web大前端每天5道面试题-Day10
1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...
- 撩课-Web大前端每天5道面试题-Day4
1. 如何实现瀑布流? 瀑布流布局的原理: ) 瀑布流布局要求要进行布置的元素等宽, 然后计算元素的宽度, 与浏览器宽度之比,得到需要布置的列数; ) 创建一个数组,长度为列数, 里面的值为已布置元素 ...
- 撩课-Web大前端每天5道面试题-Day1
1. var的变量提升的底层原理是什么? JS引擎的工作方式是: 1) 先解析代码,获取所有被声明的变量: 2)然后在运行.也就是说分为预处理和执行两个阶段. 变量提升:所有变量的声明语句都会被提升到 ...
- 撩课-Web大前端每天5道面试题-Day11
1. 如何手写一个JQ插件? 方式一: $.extend(src) 该方法就是将src合并到JQ的全局对象中去: $.extend({ log: ()=>{alert('撩课itLike');} ...
- 撩课-Web大前端每天5道面试题-Day31
1.web storage和cookie的区别? Web Storage的概念和cookie相似, 区别是它是为了更大容量存储设计的. Cookie的大小是受限的, 并且每次你请求一个新的页面的时候C ...
- 撩课-Web大前端每天5道面试题-Day25
1.web前端开发,如何提高页面性能优化? 内容方面: .减少 HTTP 请求 (Make Fewer HTTP Requests) .减少 DOM 元素数量 (Reduce the Number o ...
- 撩课-Web大前端每天5道面试题-Day7
1. 你能描述一下渐进增强和优雅降级之间的不同吗? 定义: 优雅降级(graceful degradation): 一开始就构建站点的完整功能, 然后针对浏览器测试和修复 渐进增强(progressi ...
- 撩课-Web大前端每天5道面试题-Day30
1.什么叫优雅降级和渐进增强? 优雅降级: Web站点在所有新式浏览器中都能正常工作, 如果用户使用的是老式浏览器, 则代码会针对旧版本的IE进行降级处理了, 使之在旧式浏览器上以某种形式降级体验却不 ...
- 撩课-Web大前端每天5道面试题-Day23
1.为什么用Nodejs,它有哪些优缺点? 优点: 事件驱动,通过闭包很容易实现客户端的生命活期. 不用担心多线程,锁,并行计算的问题 V8引擎速度非常快 对于游戏来说,写一遍游戏逻辑代码,前端后端通 ...
随机推荐
- koa和egg项目webpack热更新实现
背景 在用Node.js+Webpack构建的方式进行开发时, 我们希望能实现修改代码能实时刷新页面UI的效果. 这个特性webpack本身是支持的, 而且基于koa也有现成的koa-webpack- ...
- 对于equals和==的理解
很多时候equals和==大家都分不太清楚怎么样来使用,今天小编就来教大家怎么使用 equals比较的是两个变量的值是否相等 而==则比较的是这个变量的内存地址是否相同 打个比方来说 String a ...
- Tree-669. Trim a Binary Search Tree
Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so that a ...
- hdu4815----dp0-1背包
/* 题目大意: 有n个问题,,告诉你答对该题能得多少分,其中一个人随机答题,问另一个人不输的概率为p 至少需要答多多少分 对于样例: 3 0.5 1 2 3 分析: 分数 0 1 2 3 3 4 5 ...
- 面对对象编程(OOP, Object Oriented Programming)及其三个基本特性
一千个读者,一千个哈姆雷特.对于面对对象编程,书上都会告诉我们它有三个基本特性,封装,继承,多态,但谈起对这三点的见解,又是仁者见仁智者见智,感觉还是得多去编程中体验把 . 面向对象编程(OOP, O ...
- mysql enterprise backup入门使用
**************************************************************--1.全备******************************** ...
- Elasticsearch Java API简介
加入依赖 我本地的Elasticsearch的版本是2.1.0,因此加入相应的maven依赖 <dependency> <groupId>org.elasticsearch&l ...
- 基于ajax 的 几个例子 session ,ajax 实现登录,验证码 ,实现ajax表单展示
headers: {"X-CSRFToken": $("[name='csrfmiddlewaretoken']").val()},data:$(". ...
- SVN常用操作介绍
SVN:全称subversion,开源代码版本控制系统,也就是常说的“版本控制工具”,实现代码.文档等的历史版本保存.共享和权限管理.常用于软件开发项目中,开发将最新的代码放到svn,其他同事可在这个 ...
- MySQL介绍及安装(一)
一.关系型数据库和非关系型数据库 1.1:关系型数据库 关系型数据库是把复杂的数据结构归结为简单的二元关系(即二维表格的形式),在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上的,通过 ...