没有合适的资源?快使用搜索试试~ 我知道了~
知识盲点集合笔记记录在这里方便查看
需积分: 0 0 下载量 86 浏览量
2024-05-11
18:12:31
上传
评论
收藏 11.22MB DOCX 举报
温馨提示
试读
51页
知识盲点集合笔记记录在这里方便查看
资源推荐
资源详情
资源评论
VUE
1:vue 组件传值
1.1:Vue 父组件给子组件传值,子组件不更新
原因:子组件将父组件传的值做了第一次的变量赋值,当父组件更新时候,子组件没有再一
次做变量赋值,导致变量还是之前的旧值
例如; 父组件 parentData—> 子组件将值赋给给变量 childData,当 parentData 更新,
子组件没有对变量 childData 重新赋值更新导致
解决方案:
方案 1:子组件不进行变量 childData 赋值,直接使用 parentData 渲染视图,就会自动实现
双向绑定【最佳方案】
方案 2:使用 watch 和 computed
Watch 监听 parentData,一旦改变,就跟新 childData 的值
直接吧 childData 作为 computed 属性,return parentData 值
1.2:Vue 兄弟组件传值
通过父组件作为中转
通过事件总线—bus 传值
)Bus.js 文件:
import Vue from 'vue'
export default new Vue;
子组件 A
import Bus from "../api/Bus"; //引入 bus
methods: {
a() {
//储存 Bus.$emit
Bus.$emit("bbb", this.aa++); //子组件 A 向子组件 B 传值
}
}
子组件 B
import Bus from "../api/Bus";
created() {
Bus.$on("bbb", (val) => { //获取 Bus.$on
this.dd= val;
});
}
2:Vue 数据双向绑定了解 和 diff 算法?
2.1:vue 响应式原理【数据双向绑定】
2.2 : vue 里数组改变为什么有的会渲染,有的不会渲染
2.3: 加载数据在 ”created” 好还是在 ”mounted”好,两者区别?
3:Vue router 和 route 的区别
router 是路由对象
1. const router = new VueRouter({
2. mode: 'history', // 默认 hash
3. routes: [...]
4. })
//new Vue
启动
5. new Vue({
6. el: '#app',
7. //
让
vue
知道我们的路由规则
8. router: router, //
可以简写
router
9. render: c => c(App),
10.}) $router 对象是全局路由的实例,是 router 构造方法的实例
this.$router:注册在 vue 实例上的全局 router 实例。可以调用 push(),
replace(), go() 方法
11.
route 是每个单独的路由对象: 包含
routes: [
1. {
2. path: '/',
3. name: 'Hello',
4. component: Hello,
5. meta: ‘’ // 路由元信息
6. }
7. ]
this.$route:当前激活的路由的信息对象。可以获取当前路由的 path, name, params,
query, hash, fullPath, meta 属性
3.1: $router 对象 push(), replace(), go() 方法
push():this.$router.push(), 【push 方法跳转会向 history 栈里添加一个新的记录】,
方便浏览器点击“返回按钮”看到之前页面
go(): 前进后退 this.$router.go(-1) // 后退
replace():this.$router.replace('/'),一般用来做 404 页面, 【replace 方法是替换
当前的页面】,不会向 history 栈添加一个新的记录
3.2: router 路由 mode 属性:hash 和 history 模式的区别
Hash: 是 Url 后面带#的部分
比如这个 URL:http://www.abc.com/#/hello, hash 的值为 #/hello。
它的特点在于:hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,所以前端路由
修改#中的信息,对后端完全没有影响【请求中仅包含 hash 符号之前的内容】,因此改变 hash
不会重新加载页面。
Hash 原理:通过监听浏览器的 onhashchange()事件变化
history: 利用了 HTML5 History Interface 中 新增 的 pushState() 和 replaceState() 方法。
(需要特定浏览器支持)
这两个方法应用于浏览器的历史记录栈,它们提供了对 “历史记录” 进行 修改 的功能
(history 的好处是可以进行修改历史记录)。当它们执行修改时,虽然改变了当前的
URL,但浏览器不会立即向后端发送请求。
不怕前进,不怕后退,【 就怕刷新,f5,如果后端没有准备的话),因为刷新是重新向后端
请求整个网址,重新请求服务器的,不玩虚的】,你可以自由的修改 path,当刷新时,如果
服务器中没有相应的响应或者资源,会分分钟刷出一个 404 来。
history 原理:通过 pushState() 和 replaceState()和一个事件 onpopstate 监听 URL 变
化
备注:hash 模一个事件 onpopstate 监听 URL 变化式和 history 模式都属于浏览器自身的
特性
history.pushState() 和 hash 的区别:
1. pushState(): 设置的 “新 URL” 可以是与 “当前 URL” 同源的任意
URL;而 hash 只可修改 # 后面的部分,因此只能设置与当前 URL 同文档的
URL;
2. pushState()设置的 “新 URL” 可以与 “当前 URL”一模一样,这样也会
把记录添加到栈中;
而 hash 设置的”新值”必须与 “旧值”不一样 才会触发动作将记录添加
到栈中;
3. pushState()通过 stateObject 参数可以添加 “任意类型”的数据到记录
中;而 hash 只可添加 “短字符串”;
4:Vue 中 Echarts 图表自适应方法:
自带 resize() 方法可以实现浏览器自适应
5: Vue Loader
Vue-loader: vue-loader 是一个 webpack 的加载器(loader), 用来 解析和转换 .vue 文
件,提取其中的 JS(逻辑代码), CSS(样式代码),Template(模板文件),再分别把他们
交给对应的 Loader 处理,最后将他们组装成一个 CommonJS 模块,module.exports
出一个 Vue.js 组件对象。
Babel-loader,css-loader, sass-loader, style-loader(使用 js 脚本创建一个 style 标签,里
面包含样式)
6:Watch 和 Computed 的区别
Watch:【标题,面包屑,搜素列表】
监听数据值 或者状态是否改变【一个数据变化影响多个依赖数据】;
有 2 个参数 newVal,,oldVal;
可深度监听 deep:true 属性;
页面首次加载做一次监听:immediate:true
Computed:【购物车,全选】
计算属性有缓存,当缓存的依赖发生变化,重新计算,返回一个值
如果函数所依赖的属性没有发生变化,从缓存中读取
在调用时候不加(),一般复杂的逻辑放在 computed 中
剩余50页未读,继续阅读
资源评论
JIseven
- 粉丝: 25
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ISOSAE21434.D1-2020SAE美国汽车标准
- 奥比中光RGBD在JETSON ORIN NX的ROS程序
- SerialNumberUtil.java
- autojspro写的木鱼小软件,模拟木鱼的敲击声,提供源代码
- 修改windows服务器远程桌面端口批处理
- 黑马Java八股文面试题视频教程,Java面试八股文宝典(含阿里、腾迅大厂java面试真题,java数据结构,java并发
- java调用科大讯飞在线语音合成API -完整代码
- Python爬虫基础知识.zip
- Java八股文和面试项目介绍-春招秋招校招社招
- 其他类别JSP网页HTML编辑器 v1.0 beat-jsphtmleditor.7z
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功