前端框架

Vue

1. v-show和v-if的区别和使用场景

v-show和v-if都可以控制元素的显示与隐藏,v-show通过控制display:none,v-if通过删除节点。频繁操作元素显示隐藏使用v-show

2. watch和computed的区别

watch可以监听组件内的属性值,如果发生改变即触发的一个函数,这个值应该存在组件中。computed是计算属性,是根据组件中的其他值发生改变,会重新计算,返回一个新值

3. 常用的修饰符有哪些
 .once  .capture  .stop  .prevent  .ctrl  .alt  .self
4. vue中的key的作用

key保证了元素在dom中的唯一性,为将来dom更新提供diff算法依据

5. 详细说一下vue的生命周期
实例期: beforeCreate, created, beforeMount, mounted

运行期:beforeUpdate, updated

销毁期:beforeDestroy, destroyed

实例期的生命周期只会运行一次,created往后可以获取data和methods的方法,可以做接口请求数据初始化

运行期生命周期,组件内数据发生变化且在页面中使用会触发0次或多次

销毁期指组件从dom树中移除触发

6. vue双向数据绑定原理

通过对表单的数据绑定和监听表单的onchange事件实现双向数据绑定

Vue2中使用的是数据劫持的方式对数据进行绑定

利用Object.defineProperty,利用getter和setter对数据进行监听和设置

7. vue组件的作用是什么,如何定义和使用自定义组件

作用:按照视图或功能将页面拆分成若干个组件,最终由组件组成一个完整的页面,耦合度低,利于维护,可以复用

脚手架中,.vue文件就是一个组件

  • 引入组件import … from …
  • components: {…}
  • 以标签形式放在template中
 Vue.extend()

 Vue.component({template: "<div></div>"})

 Vue.component({template: "#app"})

 <template id="app"></template>
8. 组件中的data为什么必须是函数

组件中data为函数可以保证每个组件的data是唯一的,独立的,不会相互影响

9. 父子组件如何传值
父:<son :msg="msg"></son>
子:props: ['msg']

子:this.$emit('fun', 参数)
父:<son @fun="fun"></son>
10. vue-router是什么?它有哪些组件
Vue Router是vuejs的官方的路由管理器

<router-view>

<router-link>
11. vue-router有哪几种导航钩子,有哪些参数
to, from, next

全局:beforeEach()

     beforeResolve()
     
     afterEach()

路由:beforeEnter()

组件: beforeRouteEnter()

​	 beforeRouteLeave()

​	 beforeRouteUpdate()
12. 怎么定义vue-router中的动态路由?如何获取参数
+ 路由表  path: "/home/:id"
+ 跳转  this.$router.push('/home/1')
+ 获取  this.$route.params.id
13. vue的路由实现,hash和history
hash就是通过浏览器地址栏内#后添加东西不会发生新的http请求

history里用h5提供的新api, pushState() , replaceState()
14. $route和$router区别
$route用来获取当前路由信息,比如path,fullpath,params,query

$router提供路由跳转的一些方法,push,replace,go,back
15. vue-cli中如何使用组件,有遇到过哪些问题吗
脚手架中,.vue文件就是一个组件

+ 引入组件import   ... from ....
+ components: {...}
+ 以标签形式放在template中  
16. 请说出vue-cli中src目录每个文件和文件夹的用法
+ main.js 为项目的入口文件,配置全局
+ App.vue为项目默认展示的组件
+ assets存放静态资源
+ components存放非路由组件
+ pages存放路由组件
17. axios是什么,怎么使用
axios是一个基于promise的http库,用于接口的请求拦截等

axios.get("地址?id=1").then(res =>{})

axios.post("地址", {id:1}).then(res => {})
18. 如何解决跨域问题
+ jsonp

+ 设置代理

  + config/index.js   proxyTable: {}
    proxyTable: {
    	"/api": {
    		"target":""
    	}
    }
    
+ cors

+ 服务端设置请求头
19. 描述使用axios实现登录功能的流程
+ 取出用户名和密码输入框的值
+ 使用axios调用登录接口,并将用户名和密码发送给后端
+ 拿到返回数据,如果登录成功,跳转到首页
20. vuex是什么,怎么使用,哪种功能场景使用

vuex是专门为vuejs提供的状态管理模式

state:vuex的基本数据,用来存储变量

getters:从基本数据(state)派生的数据,相当于state的计算属性

mutations:提交更新数据的方法,必须是同步的(如果需要异步使用actions)。每个mutation都有一个字符串的事件类型(type)和一个回调函数(handler)。回调函数就是我们实际进行状态更改的地方,并且它会接受state作为第一个参数,提交载荷作为第二个参数。

actions:和mutations的功能大致相同,不同之处在于:actions提交的mutations,而不是直接变更状态。actions可以包含任意异步操作。

module:模块化vuex,可以让每一个模块拥有自己的state、mutations、actions、getters,使结构清晰,方便管理。

21. vuex的store有几个属性值
state,mutations,actions,getters,modules
22. 如何让css只在当前组件起作用
<style scoped></style>
23. vue过滤器的作用,如何定义和使用过滤器

过滤器就是对一个字符串的再加工

filters: {
	format(a) {
		return a + "1" 
	}
}
<p>{{msg | format}}</p>
24.vue中常见的基础指令有哪些
v-if v-show v-else v-else-if v-html v-model v-for v-text

React

1. React,vue,angular的区别
   React:

   优点: 速度块,兼容性好,模块化变成

   缺点:React本身只是一个V,如果开发大型项目,需要配合flux或redux

   Vue:

   优点:简单快速强大,模块化

   缺点:不兼容IE8,影响度不大

   Angular:

   优点:功能很强大,比较完善的前端框架,开发团队强大

   缺点:入门容易,深入学习困难,脏值检查浪费性能
2. react diff原理

比较dom树中不同的dom节点,按需更新

3. 组件的状态和props之间有什么不同

state是自身的状态数据,而props是通过属性传递过来的

4. 类组件和函数组件有何不同

类组件又叫有状态组件,函数组件又叫无状态组件,类组件可以声明自己的state,函数组件不可以

5. 为什么建议setState传callback,而不只是个对象

callback是保证了state更新完成之后的回调函数,解决了setState本身是异步的问题

6. 在构造函数中,super(props)的目的是什么

在class类内,调用super实际上是调用父类的构造函数,从而继承属性,只有在super后,才能有this

7. react中生命周期函数
挂载期:constructor,UNSAFE_componentWillMount,render, componentDidMount

更新期 : componentWillUpdate  componentDidUpdate

销毁期 : componentWillUnmount
8. shouldComponentUpdate是做什么的
shuoldComponentUpdate(nextProps, nextState) {}

这个生命周期调与不调对功能没有影响,只是用来做优化处理,如果return true,则执行render,false则不执行render

9. 为什么虚拟dom会提高性能(必考)

虚拟dom就是用js对象来模拟真实dom,操作js对象然后渲染到dom树中,通过对新旧两颗dom树的比较,记录两颗树的差异,实现按需更新

10. react中构建组件 的方式有哪几种,举例说明
function Com1() {
	return ()
}
class Com2 extends React.Component {
	render() {
		return ()
	}
}
11. 在react组件中何处发起ajax请求

初始化数据放到componentDidMount生命周期中发起ajax请求

12. 在react中,refs的作用
获取dom,不推荐直接操作dom,document.get...

this.refs....
13. 使用箭头函数的优点
react组件中的重写类方法this都指向当前组件实例对象,而后添加的方法this为undefined,所以需要更改this指向

箭头函数的优点this指向函数声明的地方

onClick={() => this.fun()},由于render里的this指向组件实例,在render内的箭头函数this也指向组件实例
14. 为什么使用react中的路由

在大型项目中,如果仅仅通过切换组件来做到视图的变化,非常的不方便,而路由是通过地址栏的改变实现展示不同的组件

15. react-router的优点

路由的改变不算做http请求,在不刷新页面的情况下,展示不同的视图,加载速度快

16. react-router与常规路由有哪些不同

常规路由是http请求,会刷新页面,而react-router实现了单页面应用,在不刷新页面的情况下,展示不同的视图,加载速度快

17. flux是什么

flux是facebook用于建立客户端web的前端应用架构,是一个种架构模式,而不是框架,由于react在一定层面上只实现了v这个层面,flux将M,V,C分离开,便于大型项目的维护

Angular

1. ts与js的关系,你觉得ts有什么优缺点
   ts是js的一种超集,包含了js的所有元素,并扩展了js的语法

   优点:

   + 大型项目开发便于维护
   + ts非常的包容,就算编译出错,运行不会出错
   + 活跃的社区,良好的支持3大前端框架

   缺点:

   + 有一定的学习成本
   + 短期开发会增加开发成本
   + 集成到构建需要一些工作量
2. 说明angular中http的用法
   + 在app.module.ts中

     import {HttpClientModule} from '@angular/common/http'
     
     
     imports: [HttpClientModule]


   + 在使用的组件内
   
     import {HttpClient} from '@angular/common/http'
     
     constructor(
     	public http: HttpClient
     ) {}
     
     this.http.get().subscribe((res) => {})
3. 列出三种不同组件之间通信方式
   父:<son [msg]="msg"></son>
   子:import {Input}  from '@angular/core'
   @Input() msg: string
   
   
   
   子:import {Output, EventEmitter} from '@angular/core'
   @Output() outer = new EventEmitter()
   this.outer.emit("123")
   父:<son (outer)="getData($event)"></son>
   
   
   父:<son #son></son>
   import {ViewChild} from '@angular/core'
   @ViewChild('son', {static: true}) son: any
   this.son.msg
   this.son.fun()
   子:
4. angular.X和angular1对比的优势
1.x 只专注于web端的开发

2.~  ionic

1.x语法复杂,学习曲线比较陡

2.x语法较简单,学习曲线比较缓
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值