当前位置: 首页 > news >正文

网站建设详细的步骤有哪些/可靠的网站优化

网站建设详细的步骤有哪些,可靠的网站优化,手机怎么做网站免费的,石岩做网站1.前端项目如何部署前后端分离开发模式下,前后端是独立布署的,前端只需要将最后的构建物上传至目标服务器的web容器指定的静态目录下即可我们知道vue项目在构建后,是生成一系列的静态文件常规布署我们只需要将这个目录上传至目标服务器即可1.…

1.前端项目如何部署

前后端分离开发模式下,前后端是独立布署的,前端只需要将最后的构建物上传至目标服务器的web容器指定的静态目录下即可

我们知道vue项目在构建后,是生成一系列的静态文件

常规布署我们只需要将这个目录上传至目标服务器即可


1.vue项目在本地时运行正常,但部署到服务器中,刷新页面,出现了404错误


答:HTTP 404 错误意味着链接指向的资源不存在。Vue是属于单页应用(single-page application),也就是说不管我们应用有多少页面,构建物都只会产出一个index.html,当切换到不同的页面,nginx location 是没有相关配置的,所以就会出现 404 的情况

为什么hash模式下没有问题

hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对服务端完全没有影响,因此改变 hash 不会重新加载页面

解决方案

nginx: 需要配置将任意页面都重定向到 index.html,把路由交由前端处理,

前端:应该在 Vue 应用里面覆盖所有的路由情况,然后在给出一个 404 UI页面


先定位一下,HTTP 404 错误意味着链接指向的资源不存在

问题在于为什么不存在?且为什么只有history模式下会出现这个问题?


2.VUE的diff算法

虚拟DOM表示真实DOM的JS对象

diff算法


虚拟DOM表示真实DOM的JS对象,如何做到快速找到两个虚拟DOM之间存在的差异,来可以最小化的更新视图,就需要vue的diff算法。vuediff算法的两个特点:

  • 比较只会在同层级进行, 不会跨层级比较

  • 在diff比较的过程中,循环从两边向中间比较

具体流程:当数据改变的时候,会触发一系列函数,首先判断他是不是同类标签不是就直接替换,是同类标签的话就判断是否相等相等的话就直接return。不相等的话就分情况执行一些列的增加,删除,替换的操作。其中有一种是如果新旧node都有子节点,那就执行updateChildren[循环从两边向中间比较],找到可以复用的节点并移动位置,如果最终没有找到的话则使用key值去比对,相同就复用并移动到相应的位置,没有就新建。


如果快速能找到两个虚拟DOM之间存在的差异,就可以最小化的更新视图,就需要diff算法

diff算法的本质就是比较两个js对象的差异

updateChildren

vuediff算法updateChildren只在同级比对,减少比对次数,提高比对性能

updateChildren采用的是首尾指针法

虚拟DOM表示真实DOM的JS对象,如何做到快速找到两个虚拟DOM之间存在的差异,来可以最小化的更新视图,就需要vue的diff算法。vuediff算法的两个特点:

  • 比较只会在同层级进行, 不会跨层级比较

  • 在diff比较的过程中,循环从两边向中间比较

具体流程:当数据改变的时候,会触发一系列函数,首先判断他是不是同类标签不是就直接替换,是同类标签的话就判断是否相等相等的话就直接return。不相等的话就分情况执行一些列的增加,删除,替换的操作。其中有一种是如果新旧node都有子节点,那就执行updateChildren[循环从两边向中间比较],找到可以复用的节点并移动位置,如果最终没有找到的话则使用key值去比对,相同就复用并移动到相应的位置,没有就新建。


3.VUE 与 React 区别

  1. 写法层面:react 创造了 JSX 语法。JSX 语法的出现允许我们在 javascript 中书写 HTML 代码。|| VUE 使用了模板系统[也就是普通的 HTML]。Vue 有单文件组件可以把 HTML、CSS、JS 写到一个文件中

  1. 核心思想:React 整体是函数式的思想,在 React 中是单向数据流【数据不可变】。|| Vue 的思想是响应式的,也就是基于是数据可变的[通过对每一个属性建立 Watcher 来监听,当属性变化的时候,响应式的更新对应的虚拟 DOM。]

  1. 使用方面:如上所说的 Vue 的响应式机制也有问题,当 state 特别多的时候,Watcher 会很多,会导致卡顿,所以大型应用(状态特别多的)一般用 React,更加可控。

4.VUE 与 React 共同点

  • virtual dom

  • 组件化,类似的组件生命机制(vue中路由切换时,会导致原路由的组件destory)

  • 数据驱动(vue:props -> data -> methods -> computed -> watch)

  • 有配套的路由和负责处理全局状态管理的库


5. 虚拟DOM一定更快吗

干前端的都知道DOM操作是性能杀手,因为操作DOM会引起页面的回流或者重绘。相比起来,通过多一些预先计算来减少DOM的操作要划算的多。

但是,“使用虚拟DOM会更快”这句话并不一定适用于所有场景。例如:一个页面就有一个按钮,点击一下,数字加一,那肯定是直接操作DOM更快。使用虚拟DOM无非白白增加了计算量和代码量。

那么为什么现在的框架都使用虚拟DOM呢?因为使用虚拟DOM可以提高代码的性能下限,并极大的优化大量操作DOM时产生的性能损耗。

vue等使用了虚拟DOM框架,不光是因为他们快,还有很多其他更重要的原因。例如react对函数式编程的友好,vue优秀的开发体验等

6.vue中的双向绑定

我们先从单向绑定切入单向绑定非常简单,就是把Model绑定到View,当我们用JavaScript代码更新Model时,View就会自动更新。双向绑定就很容易联想到了,在单向绑定的基础上,用户更新了View,Model的数据也自动被更新了,这种情况就是双向绑定举个栗子

7.双向绑定的原理是什么

我们都知道 Vue 是数据双向绑定的框架,双向绑定由三个重要部分构成

  • 数据层(Model):应用的数据及业务逻辑

  • 视图层(View):应用的展示效果,各类UI组件

  • 业务逻辑层(ViewModel):框架封装的核心,它负责将数据与视图关联起来

而上面的这个分层的架构方案,可以用一个专业术语进行称呼:MVVM这里的控制层的核心功能便是 “数据双向绑定” 。自然,我们只需弄懂它是什么,便可以进一步了解数据绑定的原理

理解ViewModel

它的主要职责就是:

  • 数据变化后更新视图

  • 视图变化后更新数据

当然,它还有两个主要部分组成

  • 监听器(Observer):对所有数据的属性进行监听

  • 解析器(Compiler):对每个元素节点的指令进行扫描跟解析,根据指令模板替换数据,以及绑定相应的更新函数

Vue中的双向绑定流程是什么的

  1. new Vue()首先执行初始化,对data执行响应化处理这个过程发生Observe

  1. 同时对模板执行编译,找到其中动态绑定的数据,从data中获取并初始化视图,这个过程发生在Compile

  1. 同时定义⼀个更新函数和Watcher,将来对应数据变化时Watcher会调用更新函数

  1. 由于data的某个key在⼀个视图中可能出现多次,所以每个key都需要⼀个管家Dep来管理多个Watcher

  1. 将来data中数据⼀旦发生变化,会首先找到对应的Dep,通知所有Watcher执行更新函数

最简单的理解是:首先执行初始化,在Observe中监听所有属性,在compile阶段初始化视图。

将来data中数据一旦发生变化,首先找到对应dep,通知watcher执行更新函数updater

8.v-show与v-if

共同点: 都能控制元素在页面是否显示,用法上也是相同的

不同点:

控制手段:v-show隐藏则是为该元素添加css--display:nonedom元素依旧还在。v-if显示隐藏是将dom元素整个添加或删除

编译过程:v-if切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件;v-show只是简单的基于css切换

性能消耗:v-if有更高的切换消耗;v-show有更高的初始渲染消耗;

使用场景:

如果需要非常频繁地切换,则使用 v-show 较好

如果在运行时条件很少改变,则使用 v-if 较好

9.vue生命周期

10.数据请求在created和mouted的区别

created是在组件实例一旦创建完成的时候立刻调用,这时候页面dom节点并未生成mounted是在页面dom节点渲染完毕之后就立刻执行的触发时机上created是比mounted要更早的

两者相同点:都能拿到实例对象的属性和方法。讨论这个问题本质就是触发的时机,放在mounted请求有可能导致页面闪动(页面dom结构已经生成),但如果在页面加载前完成则不会出现此情况建议:放在create生命周期当中

11.永远不要把 v-if 和 v-for 同时用在同一个元素上,

首屏加载

首屏时间(First Contentful Paint),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容

首屏加载可以说是用户体验中最重要的环节

利用performance.timing提供的数据:

通过DOMContentLoad或者performance来计算出首屏时间

// 方案一:
document.addEventListener('DOMContentLoaded', (event) => {console.log('first contentful painting');
});
// 方案二:
performance.getEntriesByName("first-contentful-paint")[0].startTime// performance.getEntriesByName("first-contentful-paint")[0]
// 会返回一个 PerformancePaintTiming的实例,结构如下:
{name: "first-contentful-paint",entryType: "paint",startTime: 507.80000002123415,duration: 0,
};

二、加载慢的原因

在页面渲染的过程,导致加载速度慢的因素可能如下:

  • 网络延时问题

  • 资源文件体积是否过大

  • 资源是否重复发送请求去加载了

  • 加载脚本的时候,渲染内容堵塞了

三、解决方案

常见的几种SPA首屏优化方式

  • 减小入口文件积

  • 静态资源本地缓存

  • UI框架按需加载

  • 图片资源的压缩

  • 组件重复打包

  • 开启GZip压缩

  • 使用SSR

http://www.jmfq.cn/news/5045275.html

相关文章:

  • 乌鲁木齐网站技术服务电话/网站开发详细流程
  • 甘肃省城乡与建设厅网站首页/百度查询网
  • 安徽建站平台/郑州网络营销顾问
  • 温州微网站制作哪里有/关键词是什么意思
  • wordpress主题操作/seo零基础教学视频
  • 普通网站设计/全渠道营销管理平台
  • 桂林做旅游网站失败的网站/站长之家官网登录入口
  • 查看网站是什么语言做的/百度竞价在哪里开户
  • 做淘宝网站用什么软件/百度指数查询官网入口登录
  • 秦皇岛网站团队/企业推广宣传方式
  • 福州免费建站品牌企业/seo管理
  • wordpress 翻译文件/优化大师哪个好
  • 西安的电商网站设计/百度推广seo优化
  • wordpress邮箱链接修复/seo服务商排名
  • 网站设计上市公司/百度服务中心电话
  • 二手优品哪个网站做/推广平台怎么做
  • 提供网站推广公司电话/新媒体营销推广方案
  • 网站转化下降原因/网站做优化
  • 网站建设it职位/创建网站的流程是什么
  • 中山外贸营销网站建设/百度平台官网
  • 安徽基层党组织建设网站/阿里巴巴指数查询
  • wordpress 时光捕手/天津seo托管
  • 网站定制与模板开发/最快的新闻发布平台
  • wordpress首页调用/温州网站建设优化
  • 高端网站建设kgu/网络营销策划的基本原则是什么
  • asp网站有的打不开/亚马逊关键词优化软件
  • 用ip做网站/哪里的网络推广培训好
  • 网站网页设计公司有哪些/西安seo技术
  • 电商网站建设网/新闻头条最新消息摘抄
  • 微信商城登录平台/短视频seo