【无标题】

1. vue 双向数据绑定原理 ?
vue.js 则是采⽤ 数据劫持 结合 发布者 - 订阅者 模式的⽅式,
通过 Object.defineProperty() 来劫持各个属性的 setter getter
在数据变动时发布消息给订阅者,触发相应的监听回调。
这个时候就可以实现数据的双向绑定
2. vue 常⽤的指令有哪些 ?
v-if
v-show
v-html
v-text
v-on
v-bind
v-model
v-for
3. vue 常⽤的修饰符有哪些 ?
.trim 去除⾸尾多余的空格
.stop 阻⽌事件冒泡
.once 只渲染⼀次
.self 事件只作⽤在元素本身
.number 将值转化为 number 类型
.capter 组件之间捕获
.prevent 阻⽌元素的默认⾏为
.native 事件穿透 , 让我们可以在⾃定义组件上定义事件和⽅法
4. vue 如何封装可复⽤的组件 ? 以及请举例说明你封装过的组件 ?(50%) 讲解
    1. 分析项⽬的所有⻚⾯结构和业务功能 , 抽离出相同的⻚⾯结构和业务功能
    2. 在 src ⽬录下创建⼀个 components 这个的⽂件夹
    3. 在这个⽂件夹内创建可复⽤的组件
    4. 在需要的⽤的组件⾥⾯引⼊创建的这个可复⽤的组件 , 并进⾏注册 ,以标签的形式写在对应的地          ⽅
    5. 接下来就需要对可复⽤的组件内容要进⾏封装,那么在封装的时候我们要注意组件的封闭性和   开放性以及粗细粒度
    6. 所谓的这个封闭性就是当我们在组件内部定义好之后外部是⽆法进⾏修改的,⽐如当前有⼀个  关闭的符号,或者有⼀个箭 头,我们需要不管任何⼈使⽤该组件时候都能够显示这个箭头,⽆法  从外部进⾏修改
    7. 所谓的开放性就是我们需要将动态的内容以及组件通信的⽅式进⾏数据传递 , 保证组件的可扩   展性
    8. ⽽所谓的粗细⼒度就是我们可以把⼀整个⻚⾯当作⼀个组件去进⾏封装 , 也可以⼀个⻚⾯包含了多个组件 , ⾄于到底选择
哪种呢 , 这个是没有⼀个标准的 , 我们需要根据⾃⼰的业务需求去进⾏判断
    9. 总结来说 , 所谓的如何封装可复⽤组件其实技术核⼼就是通过我们 vue 提供的组件通信在结合 slot 插槽来进⾏分装
    10. ⽐如 : 封装⼀个搜索框组件 :
            1. 在components⾥⾯创建 search.vue
            2. 在search.vue⾥⾯实现搜索框的布局
            3. 在props⾥⾯接受 title, bgColor, size , icon, 以及当点击搜索按钮或者点击回⻋键的时候 , 触发⼀个⽅法 , 通过
this.$emit 将输⼊框输⼊的值传递给⽗组件
            4. 接下来要使⽤这个搜索组件,我们需要通过 import 在⽗组件内引⼊⼦组件 , 并在 componetns 属性⾥⾯进⾏注册 ,
            5. 在⻚⾯就可以使⽤,这个时候我们可以通过传递 titile ⽼控制⼦组件搜索框显示的内容 , 通过 bgcolor 可以控制搜索框
的背景颜⾊ , 也可以通过 size 设置搜索框字体的⼤⼩ , 也可以通过 icon 来设置搜索框的图标 , 通过监听 $emit ⾥⾯定义
的⽅法来获取搜索框输⼊的值
5. vue key 的作⽤是什么 ?
避免 dom 元素重复渲染 . 我⻔⼀般在设置 key 的时候⾸先尽量会设置为 id, 或者 index 下表 .
6. 说⼀下你对 keep-alive 的理解 ? 以及在项⽬中如何使⽤ ?(90%) 过⼀下
keep-alive vue 内置的⼀个组件,⽽这个组件的作⽤就是能够缓存不活动的组件,我们能够知道,⼀般情况下,组件进⾏切 换的时候,默认会进⾏销毁,如果有需求,某个组件切换后不进⾏销毁,⽽是保存之前的状态,⽐如说刚刚填好的表单数 据。那么就可以利⽤keep-alive来实现
在搭建 vue 项⽬时,有某些路由组件没必要多次渲染,所以需要将组件在内存中进⾏ 持久化 ,此时在 router-view 上使⽤
keep-alive keep-alive 可以使被包含的路由组件状态维持不变,即便是组件切换了,其内的状态依旧维持在内存之中。在下 ⼀次显示时,也不会重新渲染。
include - 字符串或正则表达式。只有名称匹配的组件会被缓存。 exclude - 字符串或正则表达式。任何名称匹配的组件都不会 被缓存。 max- 数字最多可以缓存多少组件。
7. 说⼀下什么是 vue 过滤器 ? 有⼏种 ? 项⽬中如何使⽤
所谓的 vue 过滤器就是将数据进⾏⼆次处理 , 得到我们想要的结果数据
vue 的过滤器分为两种 , 第⼀种是全局过滤器 , 通过 vue.filet 来进⾏定义 , 第⼆种是局部过滤器 , 需要定义在组件内部
项⽬中我们通过过滤器将后台返回的状态 0 1 转化为⽀付或者未⽀付
8. slot 插槽 ?
⾸先呢 , 所谓的插槽就是⼀个占位符 , 将⾃定义组件的内容展示出来 . 我们知道⾃定义的组件⾥⾯如果写内容的话 , ⻚⾯是不会显 示出来的, 如果我们想让⾃定义组件⾥⾯的内容显示出来 , 我们就需要使⽤ slot 的插槽 .
⽽插槽分别具名插槽和匿名插槽、以及作⽤域插槽 . 我们⽤的⽐较多的具名插槽和匿名插槽 , 具名插槽需要所有 slot 标签上指定 name属性 , ⽽在对应标签上添加 v-slot 属性 .
在项⽬中我们⼀般在进⾏组件封装的时候会使⽤插槽
9. 说⼀下 vue 中本地跨域如何解决 ? 线上跨域如何解决 ?
本地跨域是通过在 vue.config.js ⽂件⾥⾯的 devServer 属性⾥⾯的 proxy 属性⾥⾯配置 , ⼀共配置三个属性 , 分别是代理名称 代理 地址 开启跨域 重写路径
线上跨域是在 nginx.conf ⽂件⾥⾯配置 , 代理名称是通过 location 代理名称。 proxy_pass 代理地址
10. 说⼀下如何对 axios 进⾏⼆次封装 ? 以及 api 如何封装 ?
1. src ⽂件夹内创建 utils ⽂件夹
2. utils ⽂件夹内创建 request.js ⽂件
3. request.js 内引⼊ axios
4. 使⽤ axios.create ⽅法创建 axios 的实例 , axios.create ⽅法⾥⾯可以配置请求的公共地址和超时时间以及其他的⼀些配置
5. 在创建请求拦截器和响应拦截器
6. 在请求拦截器⾥⾯可以获取 vuex token, 并通过 config.header.token = vuex token, token 发送给后台
7. 在请求拦截器⾥⾯我们配置 loading 加载
8. 在响应拦截器⾥⾯我们可以结束 loading 加载以及 token 的过期处理 , 以及错误响应信息的处理
9. 最后通过 export default 导出 axios 的实例对象
10. src ⽂件内创建 api ⽂件夹
11. api ⽂件夹内创建对应模块的 js ⽂件
12. 在对应的⽂件⾥⾯引⼊ request.js ⽂件
13. 封装 api ⽅法
14. 最后通过 export default 导出封装的 api ⽅法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值