外贸网站要怎么做,网站建设第三方,wordpress如何设置边栏,网站提供商22. Vue 子组件和父组件执行顺序 加载渲染过程#xff1a;
1.父组件 beforeCreate
2.父组件 created
3.父组件 beforeMount
4.子组件 beforeCreate
5.子组件 created
6.子组件 beforeMount
7.子组件 mounted
8.父组件 mounted
更新过程#xff1a;
1. 父组件 befor…22. Vue 子组件和父组件执行顺序 加载渲染过程
1.父组件 beforeCreate
2.父组件 created
3.父组件 beforeMount
4.子组件 beforeCreate
5.子组件 created
6.子组件 beforeMount
7.子组件 mounted
8.父组件 mounted
更新过程
1. 父组件 beforeUpdate
2.子组件 beforeUpdate
3.子组件 updated
4.父组件 updated
销毁过程
1. 父组件 beforeDestroy
2.子组件 beforeDestroy
3.子组件 destroyed
4.父组件 destoryed
23. created 和 mounted 的区别
created:在模板渲染成 html 前调用即通常初始化某些属性值然 后再渲染成视图。
mounted:在模板渲染成 html 后调用通常是初始化页面完成后再 对 html 的 dom 节点进行一些需要的操作。
4. 一般在哪个生命周期请求异步数据
我们可以在钩子函数 created、beforeMount、mounted 中进行调用因为在这三个钩子函数中data 已经创建可以将服务端端返回的 数据进行赋值。
推荐在 created 钩子函数中调用异步请求因为在 created 钩子函 数中调用异步请求有以下优点
能更快获取到服务端数据减少页面加载时间用户体验更好
SSR 不支持 beforeMount 、mounted 钩子函数放在 created 中有 助于一致性。
24. keep-alive 中的生命周期哪些
keep-alive 是 Vue 提供的一个内置组件用来对组件进行缓存——在组件切换过程中将状态保留在内存中防止重复渲染 DOM。
如果为一个组件包裹了 keep-alive那么它会多出两个生命周期deactivated、activated。同时beforeDestroy 和 destroyed 就 不会再被触发了因为组件不会被真正销毁。
当组件被换掉时会被缓存到内存中、触发 deactivated 生命周期当组件被切回来时再去缓存里找这个组件、触发 activated 钩子 函数。
25. 路由的 hash 和 history 模式的区别
Vue-Router 有两种模式hash 模式和 history 模式。默认的路由模 式是 hash 模式。
1. hash 模式
简介 hash 模式是开发中默认的模式它的 URL 带着一个#例如它的 hash 值就是#/vue。
特点hash 值会出现在 URL 里面但是不会出现在 HTTP 请求中对 后端完全没有影响。所以改变 hash 值不会重新加载页面。这种模 式的浏览器支持度很好低版本的 IE 浏览器也支持这种模式。hash 路由被称为是前端路由已经成为 SPA单页面应用的标配。
原理 hash 模式的主要原理就是 onhashchange()事件 使用 onhashchange()事件的好处就是在页面的 hash 值发生变化时无需向后端发起请求window 就可以监听事件的改变并按规则加 载相应的代码。除此之外hash 值变化对应的 URL 都会被浏览器记
录下来这样浏览器就能实现页面的前进和后退。虽然是没有请求后 端服务器但是页面的 hash 值和对应的 URL 关联起来了。
2. history 模式
简介 history 模式的 URL 中没有#它使用的是传统的路由分发模 式即用户在输入一个 URL 时服务器会接收这个请求并解析这个 URL然后做出相应的逻辑处理。
特 点 当 使 用 history 模 式 时 URL 就 像 这 样 。相比 hash 模式更加好看。但是history 模式需要后台配置支持。如果后台没有正确配置访问时会返回 404。
API history api 可以分为两大部分切换历史状态和修改历史状 态
修 改 历 史 状 态 包 括 了 HTML5 History Interface 中 新 增 的 pushState() 和 replaceState() 方法这两个方法应用于浏览器的 历史记录栈提供了对历史记录进行修改的功能。只是当他们进行修 改时虽然修改了 url但浏览器不会立即向后端发送请求。如果要 做到改变 url 但又不刷新页面的效果就需要前端用上这两个 API。
切换历史状态 包括 forward()、back()、go()三个方法对应浏 览器的前进后退跳转操作。
虽然 history 模式丢弃了丑陋的#。但是它也有自己的缺点就是 在刷新页面的时候如果没有相应的路由或资源就会刷出 404 来。
如果想要切换到 history 模式就要进行以下配置后端也要进行配 置 3. 两种模式对比
调用 history.pushState() 相比于直接修改 hash存在以下优势:
pushState() 设置的新 URL 可以是与当前 URL 同源的任意 URL而 hash 只可修改 # 后面的部分因此只能设置与当前 URL 同文档的 URL
pushState() 设置的新 URL 可以与当前 URL 一模一样这样也会把 记录添加到栈中而 hash 设置的新值必须与原来不一样才会触发动 作将记录添加到栈中
pushState() 通过 stateObject 参数可以添加任意类型的数据到记 录中而 hash 只可添加短字符串
pushState() 可额外设置 title 属性供后续使用。
hash 模式下仅 hash 符号之前的 url 会被包含在请求中后端如果 没有做到对路由的全覆盖也不会返回 404 错误history 模式下前端的 url 必须和实际向后端发起请求的 url 一致如果没有对用的 路由处理将返回 404 错误。
hash 模式和 history 模式都有各自的优势和缺陷还是要根据实际 情况选择性的使用。