Vue.js:渐进式JavaScript框架-前端开发

作者 : admin 本文共7850个字,预计阅读时间需要20分钟 发布时间: 2024-06-9 共3人阅读

1.介绍-What is Vue?

An approachable, performant and versatile framework for building web user interfaces.

[一个平易近人、高性能和多功能的框架,用于构建 Web 用户界面。]

–来自官网Vue.js – The Progressive JavaScript Framework | Vue.js (vuejs.org)

1.1平易近人

建立在标准 HTML、CSS 和 JavaScript 之上,具有直观的 API 和世界一流的文档。

CSS、JavaScript 和 HTML 是 Web 开发中常用的三种技术,它们分别负责网页的样式、交互和结构。

 1.1.1HTML、CSS 和 JavaScript的分别介绍:

  • HTML(HyperText Markup Language):
    • HTML 是一种标记语言,用于创建网页的结构和内容。
    • HTML 主要负责定义网页的各个元素,如标题、段落、列表、链接等。
    • HTML 通过标签来描述文档的结构,例如

         等。
      • HTML 页面的静态内容和基本布局都是由 HTML 来定义的。

  • CSS(Cascading Style Sheets):
    • CSS 是一种样式表语言,用于控制网页的外观和布局。
    • CSS 主要负责定义网页的样式,如颜色、字体、间距、背景等。
    • CSS 可以独立于 HTML 使用,通过选择器和属性来选择并美化页面元素。
    • CSS 的样式可以集中定义,然后应用到不同的 HTML 元素上,实现样式与内容的分离。
  • JavaScript:
    • JavaScript 是一种脚本语言,用于实现网页的交互效果和动态行为。
    • JavaScript 主要用于处理用户输入、响应事件、操作DOM(文档对象模型)等。
    • JavaScript 可以与 HTML 和 CSS 配合使用,实现更丰富的用户体验和功能。
    • JavaScript 可以通过脚本嵌入到 HTML 中或作为外部脚本文件引入。

1.1.2关联:

  • HTML、CSS 和 JavaScript 通常一起使用来创建现代 Web 页面,它们共同构成了前端开发的基础。
  • HTML 定义了页面的结构和内容,CSS 负责页面的样式和布局,而 JavaScript 则实现了页面的交互和动态效果。
  • 这三种技术相互配合,使得 Web 页面能够展示出更加丰富、交互和吸引人的特性。

1.1.3区别:

  • HTML 主要用于定义网页的结构和内容,CSS 用于控制样式和布局,而 JavaScript 则用于实现交互和动态效果。
  • HTML 是一种标记语言,CSS 是一种样式表语言,JavaScript 是一种脚本语言。
  • HTML 页面的静态内容和基本布局由 HTML 定义,样式由 CSS 控制,而交互和动态行为则由 JavaScript 实现。

1.1.4实例e.g.:

对于如下html文件:




    我的第一个 HTML 网页
    
        body {
            font-family: Arial, sans-serif;
            background-color: #f0f0f0;
        }
        h1 {
            color: blue;
        }
        p {
            font-size: 16px;
        }
    
    


    

欢迎来到我的 HTML 网页

这是一个样式化的段落。

1.1.4.1html部分:



    我的第一个 HTML 网页


    

欢迎来到我的 HTML 网页

这是一个样式化的段落。

在上面的例子中, 声明了文档类型为 HTML5。 标签是 HTML 文档的根元素。 元素包含了文档的元数据,如标题 (</code>)。<code></code> 元素包含了可见的内容,如标题 (<code></p><h1></code>)、段落 (<code></p><p></code>) 和链接 (<code></code>)。</p><h5>1.1.4.2CSS部分:</h5><pre><code class="language-css">/* styles.css */ body { font-family: Arial, sans-serif; background-color: #f0f0f0; } h1 { color: blue; } p { font-size: 16px; }</code></pre><p>在上面的例子中,<code></code> 元素内部定义了一些 CSS 规则。例如,<code>body</code> 元素的字体为 Arial,背景色为浅灰色;<code>h1</code> 元素的文字颜色为蓝色;<code>p</code> 元素的字体大小为 16 像素。</p><h5>1.1.4.3Javascript部分:</h5><pre><code class="language-javascript">// script.js function greet() { var name = prompt("请输入你的名字:"); alert("你好," + name + "!"); }</code></pre><p>在上面的例子中,定义了一个 JavaScript 函数 <code>greet()</code>,当用户点击按钮时,会弹出一个提示框要求输入名字,并显示一个包含用户输入名字的欢迎提示框。</p><h3>1.2高性能</h3><p>真正的反应式、编译器优化的渲染系统,几乎不需要手动优化。</p><p>这个涉及到Vue.js的核心概念–<strong>声明式渲染.</strong></p><p><strong>声明式渲染的核心思想是,我们只需要描述应用程序的界面应该是什么样子,而不需要手动操作DOM。</strong></p><h4>1.2.1命令式渲染 vs 声明式渲染</h4><p>在声明式渲染中,开发者描述 UI 应该是什么样子,而不是如何改变 UI。这与命令式渲染形成对比,后者要求开发者编写具体的步骤来操作 DOM。</p><h4>1.2.1.1 命令式渲染(Imperative Rendering)</h4><p>命令式渲染是一种开发者需要编写指令来精确控制UI每一步如何变化的范式。在命令式渲染中,开发者通常会直接操作DOM来创建、更新或删除UI元素。这意味着开发者需要编写详细的代码来处理UI的每一个细节。【<strong>可以理解为:写完网页代码了需要经过某种方式运行才会产生效果</strong>】</p><blockquote><ul><li><p><strong>Q:DOM是什么? </strong>来自什么是DOM(超详细解释,建议收藏!!!)-CSDN博客</p><p>–“文档对象模型”(Document Object Model).</p><p>是<strong>JS操作网页的接口;</strong></p><p>作用是:将网页转为一个JS对象,从而可以用脚本进行各种操作(比如增删内容)。</p><p>要改变页面的某个东西,JS就需要获得对网页中所有元素进行访问的入口。这个入口,连同对HTML元素进行添加、移动、改变或移除的方法和属性,都是通过DOM来获得的。</p><p>浏览器会根据DOM模型,将结构化文档(比如HTML和XML)解析成一系列的节点,再由这些节点组成一个<strong>树状结构</strong>(DOM Tree)。所有的节点和最终的树状结构,都有规范的对外接口。所以,DOM可以理解成网页的编程接口。DOM有自己的国际标准,目前的通用版本是DOM 3,DOM 4。<br /><strong>DOM特点:树结构+节点+API+配套JS+跨平台性</strong></p><ul><li>DOM 将文档解析为一个树状结构,其中顶层是文档节点,它包含了整个文档的内容。文档节点下面是元素节点、文本节点、注释节点等,它们按照父子关系形成了树状结构。</li><li>DOM 中的每个元素、属性、文本都是一个节点,它们可以通过 DOM API 进行访问和操作。节点可以添加、删除、修改,也可以遍历整个文档树。</li><li>DOM 提供了一系列的 API,用于操作文档结构。e.g.查询元素/修改内容/添加事件监听器,可用这些 API 来动态地改变页面的外观。</li><li>开发者可以使用 JavaScript 来响应用户的操作、修改页面内容、更新样式等,从而实现动态的网页效果。</li><li>DOM 是与平台无关的标准;</li></ul></li></ul></blockquote><p><strong>例子</strong>:使用原生JavaScript来动态创建一个列表。</p><pre><code class="language-javascript">const data = ['Apple', 'Banana', 'Cherry']; const ul = document.createElement('ul'); data.forEach((fruit) => { const li = document.createElement('li'); li.textContent = fruit; ul.appendChild(li); }); document.body.appendChild(ul);</code></pre><p><strong>特点</strong>:</p><ul><li>控制程度:命令式渲染提供了极高的控制能力,因为开发者可以直接操作DOM。</li><li>复杂性:随着应用规模的增加,手动管理DOM的代码会变得非常复杂和难以维护。</li><li>性能:在某些情况下,命令式渲染可以优化性能,因为开发者可以精确控制何时进行DOM操作。</li></ul><h4>1.2.1.2 声明式渲染(Declarative Rendering)</h4><p>声明式渲染是一种开发者描述UI应该是什么样子的范式,而框架或库负责根据描述来更新实际的DOM。</p><p>在声明式渲染中,开发者通常使用模板或函数式组件来定义UI的结构,并声明如何使用数据来驱动UI的变化。【<strong>说白了,写完网页代码就会实时产生效果</strong>】</p><p><strong>例子</strong>:使用Vue.js进行声明式渲染。</p><pre><code class="language-javascript"> <ul> <li>{{ fruit }}</li> </ul> </code></pre><ul><li>声明式渲染通常会导致更少的代码量,因为它抽象了底层的 DOM 操作[框架负责 DOM 操作:声明式框架内部处理了大部分 DOM 操作,框架通常会自动进行优化。</li><li>由于开发者只需关注数据和模板,而不是具体的 DOM 操作,因此代码更容易理解和维护。</li></ul><h3>1.3多功能</h3><h4>1.3.1响应式数据绑定</h4><p>Vue.js 提供了响应式数据绑定,<strong>当数据改变时,界面会自动更新</strong>。这大大减少了DOM操作的工作量,使得开发者能够更加专注于数据的处理和业务逻辑的编写。</p><p>响应式数据绑定是现代<a href="http://www.xu0.com/tag/qian-duan-kuang-jia" title="【查看更多[前端框架]标签的文章】" target="_blank">前端框架</a>中非常重要的一个特性。在 Vue.js、React 和 Angular 等框架中,当数据发生变化时,视图会自动更新以反映这些变化,而无需手动操作 DOM。这使得开发者可以更专注于数据和用户界面的逻辑,而不必过多地关注视图的更新细节。这种自动更新的机制大大简化了前端开发的复杂性,并提高了开发效率。</p><h4>1.3.2组件系统</h4><p>Vue.js 的组件系统是其最强大的功能之一。组件系统允许开发者将用户界面拆分为独立可复用的组件,每个组件都有自己的状态和逻辑。这种模块化的开发方式使得代码更易于维护、测试和重用。</p><p>在 Vue.js 中,组件可以嵌套使用,每个组件都可以包含自己的模板、样式和行为。组件之间可以通过 props 和 events 进行通信,props 用于向子组件传递数据,events 用于从子组件向父组件传递数据。这种单向数据流的设计使得组件之间的通信更加清晰和可控。</p><p>另外,Vue.js 的组件系统还支持插槽(slot),插槽允许开发者在父组件中定义额外的内容,然后将其传递给子组件进行渲染。这种灵活的插槽系统使得组件更加通用和可配置。</p><p>假设我们正在构建一个待办事项列表的应用程序。我们可以将每个待办事项表示为一个单独的组件,并且整个待办事项列表也可以作为一个组件。</p><p>创建一个待办事项组件 <code>TodoItem.vue</code>:</p><pre><code class="language-javascript"> <span>{{ text }}</span> .todo-item { margin-bottom: 5px; } </code></pre><p>创建一个待办事项列表组件 <code>TodoList.vue</code>,它包含多个 <code>TodoItem</code> 组件:</p><pre><code class="language-javascript"> <h2>{{ title }}</h2> .todo-list { border: 1px solid #ccc; padding: 10px; } </code></pre><p>在主应用程序中使用这些组件:</p><pre><code class="language-javascript"> .app { max-width: 400px; margin: 0 auto; } </code></pre><p>这里使用了 Vue.js 的单文件组件 (SFC) 来创建 <code>TodoItem</code> 和 <code>TodoList</code> 组件,并在主应用程序中将它们组合在一起。通过 props 将数据从父组件传递给子组件,我们可以轻松地将待办事项列表渲染到页面上,并在用户与应用程序交互时更新数据。</p><h2>2.Vue.js的安装和使用</h2><h3>2.1安装</h3><p>Vue.js 有多种安装方式,包括直接通过 <code></code> 标签引入,或者使用 npm/yarn 等包管理工具安装。</p><blockquote><p>1.安装 Node.js,因为 Vue CLI 是基于 Node.js 的。在 Node.js 官网 上下载并安装最新版本。</p><p>2.安装 Vue CLI。</p><p>3.创建一个新的 Vue 项目。</p><p>4.进入新创建的项目目录:</p><p>5.启动开发服务器:</p><pre><code class="language-bash">npm install -g @vue/cli vue create my-vue-app cd my-vue-app npm run serve</code></pre><p>6.现在可以在浏览器中访问 http://localhost:8080/ 查看 Vue 应用程序了。</p></blockquote><h3>2.2创建第一个 Vue 应用</h3><p>创建一个 Vue 应用非常简单。首先,我们需要引入 Vue.js,然后创建一个 Vue 实例,并将数据和方法与界面绑定。这样,我们就能够通过修改数据来动态更新界面。</p><h2>3.Vue.js的高级特性</h2><h3>3.1指令</h3><p>Vue.js 的指令是其高级特性之一,它们允许在模板中添加特定的行为和功能。以下是一些常见的 Vue.js 指令:</p><h4>3.1.1<code>v-if</code> 和 <code>v-else</code></h4><p><code>v-if</code> 指令用于根据条件显示或隐藏元素,而 <code>v-else</code> 则用于在 <code>v-if</code> 条件不满足时显示元素。</p><pre><code class="language-javascript"> This is shown if isTrue is true This is shown if isTrue is false </code></pre><h4>3.1.2<code>v-for</code></h4><p><code>v-for</code> 指令用于循环渲染数组或对象的每个项目。</p><pre><code class="language-javascript"><ul> <li> {{ item.text }} </li> </ul></code></pre><pre></pre><h4>3.1.3<code>v-bind</code></h4><p><code>v-bind</code> 指令用于动态绑定 HTML 特性。它可以简写为 <code>:</code>。</p><pre><code class="language-javascript">Link Link</code></pre><pre></pre><h4>3.1.4<code>v-on</code></h4><p><code>v-on</code> 指令用于绑定事件监听器。它可以简写为 <code>@</code>。</p><pre><code class="language-javascript"><button>Click me</button> <button>Click me</button></code></pre><pre></pre><h4>3.1.5<code>v-model</code></h4><p><code>v-model</code> 指令用于在表单元素上创建双向数据绑定。</p><pre><code class="language-javascript"></code></pre><pre></pre><h4>3.1.6<code>v-show</code></h4><p><code>v-show</code> 指令根据表达式的值来显示或隐藏元素,但是通过 CSS 的 <code>display</code> 属性来实现,而不是真正地从 DOM 中移除元素。</p><pre><code class="language-javascript"> This will be shown or hidden based on the value of isVisible </code></pre><pre></pre><h4>3.1.7自定义指令</h4><p>除了内置的指令之外,Vue.js 还允许创建自定义指令,以便在应用程序中重用特定的 DOM 行为。</p><p>这些指令使得 Vue.js 在处理模板和视图时非常强大和灵活,可以根据具体的需求来控制元素的行为和外观。</p><h3>3.2计算属性和侦听器</h3><p>当需要在 Vue.js 应用程序中进行复杂的逻辑计算或者对数据的变化做出响应时,计算属性和侦听器是非常有用的高级特性。</p><h4>3.2.1计算属性</h4><p>计算属性是基于Vue实例的数据来动态计算得出的属性。它们会根据它们的依赖缓存起来,并且只有在它们的依赖发生改变时才会重新计算。这使得计算属性更高效。</p><pre><code class="language-javascript">new Vue({ data: { radius: 5 }, computed: { area: function () { return Math.PI * this.radius * this.radius; } } });</code></pre><p>在上面的例子中,<code>area</code> 是一个计算属性,它依赖于 <code>radius</code> 数据,并且根据 <code>radius</code> 的变化动态计算出圆的面积。</p><h4>3.2.2侦听器</h4><p>侦听器允许我在数据发生变化时执行异步或开销较大的操作。当数据变化时,执行自定义的逻辑。</p><pre><code class="language-javascript">new Vue({ data: { question: '', answer: 'I cannot give an answer until you ask a question!' }, watch: { question: function (newQuestion, oldQuestion) { this.getAnswer(); } }, methods: { getAnswer: _.debounce( function () { if (this.question.indexOf('?') === -1) { this.answer = 'Questions usually contain a question mark. ;-)'; return; } this.answer = 'Thinking...'; // 异步调用获取答案 fetch('http://api.example.com/answer?q=' + this.question) .then(response => { return response.json(); }) .then(data => { this.answer = data.answer; }); }, 500 ) } });</code></pre><p>在上面的例子中,<code>watch</code> 对象定义了一个侦听器,它监视 <code>question</code> 数据的变化,并且在 <code>question</code> 变化时调用 <code>getAnswer</code> 方法来获取答案。</p><p>计算属性和侦听器都为 Vue.js 提供了灵活性和强大的数据处理能力,使得你可以更好地控制和响应数据的变化。</p><h3>3.3生命周期钩子</h3><p>Vue.js 组件有一组生命周期钩子函数,它们<strong>允许在组件的不同阶段执行代码</strong>。</p><p>这些钩子函数<strong>使能够在组件生命周期的特定时间点执行操作</strong>,例如在组件被创建、挂载、更新或销毁时。</p><p>以下是 Vue.js 组件生命周期的主要钩子函数:</p><blockquote><h4>3.3.1创建(Creation):</h4><ul><li>beforeCreate: 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。</li><li>created: 在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。</li></ul><h4>3.3.2挂载(Mounting):</h4><ul><li>beforeMount: 在挂载开始之前被调用:相关的 render 函数首次被调用。</li><li>mounted: el 被新创建的 vm.𝑒𝑙替换,并挂载到实例上去之后调用该钩子函数。如果根实例挂载了一个文档内元素,当𝑚𝑜𝑢𝑛𝑡𝑒𝑑被调用时𝑣𝑚.el替换,并挂载到实例上去之后调用该钩子函数。如果根实例挂载了一个文档内元素,当mounted被调用时vm.el 也在文档内。</li></ul><h4>3.3.3更新(Updating):</h4><ul><li>beforeUpdate: 数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。</li><li>updated: 由于数据更改导致的虚拟 DOM 重新渲染和打补丁后调用。</li></ul><h4>3.3.4销毁(Destruction):</h4><ul><li>beforeDestroy: 实例销毁之前调用。在这一步,实例仍然完全可用。</li><li>destroyed: 实例销毁后调用。该钩子被调用时,Vue 实例上的所有指令都被解绑,所有事件监听器被移除,所有子实例也被销毁。</li></ul><h4>3.3.5错误处理(Error Handling):</h4><ul><li>errorCaptured: 当子孙组件中存在错误时会被调用。会向上冒泡并在整个组件树中寻找有对应处理方法的 errorCaptured 钩子,如果找到了,则调用。</li></ul></blockquote><p>这些生命周期钩子函数允许在组件生命周期的不同阶段执行代码,从而实现对组件行为的精确控制和响应。</p><h2>4.Vue.js的生态系统</h2><p>Vue.js 有着丰富的生态系统,包括但不限于 Vue Router、Vuex、Vue CLI 等。这些工具和库可以帮助更好地构建大型应用,提高开发效率。</p><blockquote><h3>4.1 Vue CLI</h3><p>Vue CLI 是官方提供的用于快速搭建 Vue.js 项目的脚手架工具。它提供了一套交互式的用户界面,帮助你快速初始化项目,并且集成了开发、构建和部署等功能。</p><h3>4.2Vuex</h3><p>Vuex 是 Vue.js 官方推荐的状态管理库,用于集中管理 Vue 应用中的所有组件的状态。它提供了一种可预测的状态管理机制,使得状态的修改和响应变得简单而可控。</p><h3>4.3 Vue Router</h3><p>Vue Router 是 Vue.js 官方的路由管理器,用于实现单页面应用程序 (SPA) 中的路由导航和页面跳转。它支持路由参数、嵌套路由、路由守卫等功能,帮助你构建复杂的前端路由系统。</p><h3>4.4 Vue Devtools</h3><p>Vue Devtools 是一个浏览器插件,用于在开发过程中调试 Vue.js 应用程序。它提供了组件树、状态管理、事件跟踪等功能,帮助你更轻松地分析和调试 Vue 应用。</p><h3>4.5 Vue Test Utils</h3><p>Vue Test Utils 是 Vue.js 官方提供的测试工具库,用于编写单元测试和端到端测试。它与各种测试框架 (如 Jest、Mocha、Cypress 等) 集成,帮助你确保应用程序的稳定性和可靠性。</p></blockquote><p>除了以上列举的核心组件外,Vue.js 生态系统还包括大量的第三方库和插件,如 UI 组件库 (Element UI、Vuetify、Ant Design Vue 等)、服务器端渲染 (SSR) 解决方案、状态管理工具 (Vuex、Redux Vue 等)、图表库、表单验证库等,为开发者提供了丰富的选择和支持。</p><h2>5.拓展:</h2><p>十分钟入门vue_哔哩哔哩_bilibili</p></article><div id="pay-single-box"></div><div class="entry-tags"> <a href="http://www.xu0.com/tag/vuejs" rel="tag"> vue.js </a> <a href="http://www.xu0.com/tag/qian-duan-kuang-jia" rel="tag"> 前端框架 </a></div><div class="article-copyright">本站无任何商业行为<br/><a href="http://www.xu0.com">个人在线分享</a> » <a href="http://www.xu0.com/24936.html">Vue.js:渐进式JavaScript框架-前端开发</a></div><div class="article-footer"><div class="author-box"><div class="author-image"> <img alt='admin' data-src='http://xu0.com/wp-content/uploads/avatar/avatar-1.png' class='lazyload avatar avatar-140 photo gravatar' height='140' width='140' /></div><div class="author-info"><h4 class="author-name"> <a href="http://www.xu0.com/author/admin">admin</a> <span class="label label-warning"><i class="fa fa-diamond"></i> 钻石</span></h4></div></div><div class="xshare"> <span class="xshare-title">分享到:</span> <a href="" etap="share" data-share="qq" class="share-qq"><i class="fa fa-qq"></i></a> <a href="" etap="share" data-share="weibo" class="share-weibo"><i class="fa fa-weibo"></i></a></div></div></div></div></div></main><div class="entry-navigation"><nav class="article-nav"> <span class="article-nav-prev">上一篇<br><a href="http://www.xu0.com/24934.html" rel="prev">3067. 在带权树网络中统计可连接服务器对数目 Medium</a></span> <span class="article-nav-next">下一篇<br><a href="http://www.xu0.com/24937.html" rel="next">Git如何拉取远程仓库的其他分支</a></span></nav></div></div><div class="coments" style="margin-top:20px;"></div></div><div class="sidebar-column col-lg-3"><aside class="widget-area"><div id="search-2" class="widget widget_search"><form method="get" class="search-form inline" action="http://www.xu0.com/"> <input type="search" class="search-field inline-field" placeholder="输入关键词,回车..." autocomplete="off" value="" name="s" required="required"> <button type="submit" class="search-submit"><i class="mdi mdi-magnify"></i></button></form></div><div id="tag_cloud-2" class="widget widget_tag_cloud"><h5 class="widget-title">标签</h5><div class="tagcloud"><a href="http://www.xu0.com/tag/android" class="tag-cloud-link tag-link-2417 tag-link-position-1" style="font-size: 9.410071942446pt;" aria-label="android (1,133个项目)">android</a> <a href="http://www.xu0.com/tag/c" class="tag-cloud-link tag-link-2388 tag-link-position-2" style="font-size: 14.244604316547pt;" aria-label="C++ (3,406个项目)">C++</a> <a href="http://www.xu0.com/tag/css" class="tag-cloud-link tag-link-2368 tag-link-position-3" style="font-size: 11.625899280576pt;" aria-label="css (1,876个项目)">css</a> <a href="http://www.xu0.com/tag/c-yu-yan" class="tag-cloud-link tag-link-2360 tag-link-position-4" style="font-size: 9.8129496402878pt;" aria-label="c语言 (1,241个项目)">c语言</a> <a href="http://www.xu0.com/tag/docker" class="tag-cloud-link tag-link-2464 tag-link-position-5" style="font-size: 10.115107913669pt;" aria-label="docker (1,314个项目)">docker</a> <a href="http://www.xu0.com/tag/html" class="tag-cloud-link tag-link-2375 tag-link-position-6" style="font-size: 12.330935251799pt;" aria-label="html (2,187个项目)">html</a> <a href="http://www.xu0.com/tag/ava" class="tag-cloud-link tag-link-267 tag-link-position-7" style="font-size: 18.172661870504pt;" aria-label="Java (8,382个项目)">Java</a> <a href="http://www.xu0.com/tag/javascript" class="tag-cloud-link tag-link-2361 tag-link-position-8" style="font-size: 18.273381294964pt;" aria-label="javascript (8,468个项目)">javascript</a> <a href="http://www.xu0.com/tag/leetcode" class="tag-cloud-link tag-link-2864 tag-link-position-9" style="font-size: 8.705035971223pt;" aria-label="leetcode (960个项目)">leetcode</a> <a href="http://www.xu0.com/tag/linux" class="tag-cloud-link tag-link-2465 tag-link-position-10" style="font-size: 14.244604316547pt;" aria-label="linux (3,402个项目)">linux</a> <a href="http://www.xu0.com/tag/mysql" class="tag-cloud-link tag-link-2485 tag-link-position-11" style="font-size: 10.215827338129pt;" aria-label="mysql (1,361个项目)">mysql</a> <a href="http://www.xu0.com/tag/python" class="tag-cloud-link tag-link-2362 tag-link-position-12" style="font-size: 16.561151079137pt;" aria-label="python (5,736个项目)">python</a> <a href="http://www.xu0.com/tag/spring" class="tag-cloud-link tag-link-2398 tag-link-position-13" style="font-size: 9.7122302158273pt;" aria-label="spring (1,200个项目)">spring</a> <a href="http://www.xu0.com/tag/springboot" class="tag-cloud-link tag-link-2400 tag-link-position-14" style="font-size: 12.532374100719pt;" aria-label="springboot (2,266个项目)">springboot</a> <a href="http://www.xu0.com/tag/uni-app" class="tag-cloud-link tag-link-2446 tag-link-position-15" style="font-size: 9.3093525179856pt;" aria-label="uni-app (1,088个项目)">uni-app</a> <a href="http://www.xu0.com/tag/vue" class="tag-cloud-link tag-link-2411 tag-link-position-16" style="font-size: 8.705035971223pt;" aria-label="vue (944个项目)">vue</a> <a href="http://www.xu0.com/tag/vuejs" class="tag-cloud-link tag-link-2371 tag-link-position-17" style="font-size: 16.561151079137pt;" aria-label="vue.js (5,713个项目)">vue.js</a> <a href="http://www.xu0.com/tag/web-an-quan" class="tag-cloud-link tag-link-2504 tag-link-position-18" style="font-size: 8.9064748201439pt;" aria-label="web安全 (1,006个项目)">web安全</a> <a href="http://www.xu0.com/tag/windows" class="tag-cloud-link tag-link-2418 tag-link-position-19" style="font-size: 8pt;" aria-label="windows (819个项目)">windows</a> <a href="http://www.xu0.com/tag/ren-gong-zhi-neng" class="tag-cloud-link tag-link-15 tag-link-position-20" style="font-size: 16.661870503597pt;" aria-label="人工智能 (5,918个项目)">人工智能</a> <a href="http://www.xu0.com/tag/qian-duan" class="tag-cloud-link tag-link-2366 tag-link-position-21" style="font-size: 22pt;" aria-label="前端 (19,994个项目)">前端</a> <a href="http://www.xu0.com/tag/qian-duan-kuang-jia" class="tag-cloud-link tag-link-2397 tag-link-position-22" style="font-size: 9.0071942446043pt;" aria-label="前端框架 (1,031个项目)">前端框架</a> <a href="http://www.xu0.com/tag/dan-pian-ji" class="tag-cloud-link tag-link-2943 tag-link-position-23" style="font-size: 8.2014388489209pt;" aria-label="单片机 (856个项目)">单片机</a> <a href="http://www.xu0.com/tag/hou-duan" class="tag-cloud-link tag-link-2401 tag-link-position-24" style="font-size: 13.035971223022pt;" aria-label="后端 (2,565个项目)">后端</a> <a href="http://www.xu0.com/tag/da-shu-ju" class="tag-cloud-link tag-link-2450 tag-link-position-25" style="font-size: 12.028776978417pt;" aria-label="大数据 (2,037个项目)">大数据</a> <a href="http://www.xu0.com/tag/xue-xi" class="tag-cloud-link tag-link-2435 tag-link-position-26" style="font-size: 13.338129496403pt;" aria-label="学习 (2,761个项目)">学习</a> <a href="http://www.xu0.com/tag/an-quan" class="tag-cloud-link tag-link-2568 tag-link-position-27" style="font-size: 11.021582733813pt;" aria-label="安全 (1,615个项目)">安全</a> <a href="http://www.xu0.com/tag/rong-qi" class="tag-cloud-link tag-link-2463 tag-link-position-28" style="font-size: 9.1079136690647pt;" aria-label="容器 (1,045个项目)">容器</a> <a href="http://www.xu0.com/tag/xiao-cheng-xu" class="tag-cloud-link tag-link-2459 tag-link-position-29" style="font-size: 9.6115107913669pt;" aria-label="小程序 (1,171个项目)">小程序</a> <a href="http://www.xu0.com/tag/qian-ru-shi-ying-jian" class="tag-cloud-link tag-link-2944 tag-link-position-30" style="font-size: 8.3021582733813pt;" aria-label="嵌入式硬件 (874个项目)">嵌入式硬件</a> <a href="http://www.xu0.com/tag/kai-fa-yu-yan" class="tag-cloud-link tag-link-2372 tag-link-position-31" style="font-size: 17.971223021583pt;" aria-label="开发语言 (7,904个项目)">开发语言</a> <a href="http://www.xu0.com/tag/wei-xin-xiao-cheng-xu" class="tag-cloud-link tag-link-2424 tag-link-position-32" style="font-size: 8.6043165467626pt;" aria-label="微信小程序 (934个项目)">微信小程序</a> <a href="http://www.xu0.com/tag/%e6%95%b0%e6%8d%ae%e5%ba%93" class="tag-cloud-link tag-link-304 tag-link-position-33" style="font-size: 14.748201438849pt;" aria-label="数据库 (3,785个项目)">数据库</a> <a href="http://www.xu0.com/tag/shu-ju-jie-gou" class="tag-cloud-link tag-link-2460 tag-link-position-34" style="font-size: 10.517985611511pt;" aria-label="数据结构 (1,458个项目)">数据结构</a> <a href="http://www.xu0.com/tag/fu-wu-qi" class="tag-cloud-link tag-link-2436 tag-link-position-35" style="font-size: 13.841726618705pt;" aria-label="服务器 (3,066个项目)">服务器</a> <a href="http://www.xu0.com/tag/ji-qi-xue-xi" class="tag-cloud-link tag-link-2603 tag-link-position-36" style="font-size: 9.7122302158273pt;" aria-label="机器学习 (1,202个项目)">机器学习</a> <a href="http://www.xu0.com/tag/shen-du-xue-xi" class="tag-cloud-link tag-link-2469 tag-link-position-37" style="font-size: 10.820143884892pt;" aria-label="深度学习 (1,559个项目)">深度学习</a> <a href="http://www.xu0.com/tag/bi-ji" class="tag-cloud-link tag-link-2587 tag-link-position-38" style="font-size: 11.827338129496pt;" aria-label="笔记 (1,960个项目)">笔记</a> <a href="http://www.xu0.com/tag/suan-fa" class="tag-cloud-link tag-link-2386 tag-link-position-39" style="font-size: 14.446043165468pt;" aria-label="算法 (3,536个项目)">算法</a> <a href="http://www.xu0.com/tag/wang-luo" class="tag-cloud-link tag-link-853 tag-link-position-40" style="font-size: 13.035971223022pt;" aria-label="网络 (2,577个项目)">网络</a> <a href="http://www.xu0.com/tag/wang-luo-xie-yi" class="tag-cloud-link tag-link-2437 tag-link-position-41" style="font-size: 8.8057553956835pt;" aria-label="网络协议 (971个项目)">网络协议</a> <a href="http://www.xu0.com/tag/wang-luo-an-quan" class="tag-cloud-link tag-link-2505 tag-link-position-42" style="font-size: 8pt;" aria-label="网络安全 (814个项目)">网络安全</a> <a href="http://www.xu0.com/tag/yun-wei" class="tag-cloud-link tag-link-2477 tag-link-position-43" style="font-size: 14.345323741007pt;" aria-label="运维 (3,493个项目)">运维</a> <a href="http://www.xu0.com/tag/mian-shi" class="tag-cloud-link tag-link-2445 tag-link-position-44" style="font-size: 9.0071942446043pt;" aria-label="面试 (1,027个项目)">面试</a> <a href="http://www.xu0.com/tag/yin-shi-pin" class="tag-cloud-link tag-link-2438 tag-link-position-45" style="font-size: 8.8057553956835pt;" aria-label="音视频 (969个项目)">音视频</a></div></div><div id="calendar-2" class="widget widget_calendar"><div id="calendar_wrap" class="calendar_wrap"><table id="wp-calendar" class="wp-calendar-table"><caption>2024年七月</caption><thead><tr><th scope="col" title="星期一">一</th><th scope="col" title="星期二">二</th><th scope="col" title="星期三">三</th><th scope="col" title="星期四">四</th><th scope="col" title="星期五">五</th><th scope="col" title="星期六">六</th><th scope="col" title="星期日">日</th></tr></thead><tbody><tr><td colspan="6" class="pad"> </td><td>1</td></tr><tr><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td id="today">14</td><td>15</td></tr><tr><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td></tr><tr><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td></tr><tr><td>30</td><td class="pad" colspan="6"> </td></tr></tbody></table><nav aria-label="上个月及下个月" class="wp-calendar-nav"> <span class="wp-calendar-nav-prev"><a href="http://www.xu0.com/date/2024/06">« 6月</a></span> <span class="pad"> </span> <span class="wp-calendar-nav-next"> </span></nav></div></div></aside></div></div><div class="related-posts-grid"><h4 class="u-border-title">相关推荐</h4><div class="row"><div class="col-6 col-sm-3 col-md-3 mt-10 mb-10"><article class="post"><div class="entry-media"><div class="placeholder" style="padding-bottom: 66.666666666667%;"> <a href="http://www.xu0.com/24225.html"> <img class="lazyload" data-src="/images/2024/0608/a0121817b78b4c219df5b0bb447b759a.jpeg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="el-table合计行前置在首行,自定义合计行方法"> </a></div></div><div class="entry-wrapper"><header class="entry-header"><h4 class="entry-title"><a href="http://www.xu0.com/24225.html" title="el-table合计行前置在首行,自定义合计行方法" rel="bookmark">el-table合计行前置在首行,自定义合计行方法</a></h4></header></div></article></div><div class="col-6 col-sm-3 col-md-3 mt-10 mb-10"><article class="post"><div class="entry-media"><div class="placeholder" style="padding-bottom: 66.666666666667%;"> <a href="http://www.xu0.com/131126.html"> <img class="lazyload" data-src="http://www.xu0.com/wp-content/uploads/2024/06/1718481282-593a4dc8537f6ca.png" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="【学一点儿前端】vue3+vite不能使用require引入包的问题(require is not defined)"> </a></div></div><div class="entry-wrapper"><header class="entry-header"><h4 class="entry-title"><a href="http://www.xu0.com/131126.html" title="【学一点儿前端】vue3+vite不能使用require引入包的问题(require is not defined)" rel="bookmark">【学一点儿前端】vue3+vite不能使用require引入包的问题(require is not defined)</a></h4></header></div></article></div><div class="col-6 col-sm-3 col-md-3 mt-10 mb-10"><article class="post"><div class="entry-media"><div class="placeholder" style="padding-bottom: 66.666666666667%;"> <a href="http://www.xu0.com/142849.html"> <img class="lazyload" data-src="http://www.xu0.com/wp-content/uploads/2024/06/1718485772-08f3f6b82d11519.png" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="前端实现获取后端返回的文件流并下载"> </a></div></div><div class="entry-wrapper"><header class="entry-header"><h4 class="entry-title"><a href="http://www.xu0.com/142849.html" title="前端实现获取后端返回的文件流并下载" rel="bookmark">前端实现获取后端返回的文件流并下载</a></h4></header></div></article></div><div class="col-6 col-sm-3 col-md-3 mt-10 mb-10"><article class="post"><div class="entry-media"><div class="placeholder" style="padding-bottom: 66.666666666667%;"> <a href="http://www.xu0.com/133375.html"> <img class="lazyload" data-src="https://blog.csdn.net/fugaoliang/article/details/" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="vue前端图片上传、回显图片"> </a></div></div><div class="entry-wrapper"><header class="entry-header"><h4 class="entry-title"><a href="http://www.xu0.com/133375.html" title="vue前端图片上传、回显图片" rel="bookmark">vue前端图片上传、回显图片</a></h4></header></div></article></div></div></div> E--></div><footer class="site-footer"><div class="container"><div class="footer-widget"><div class="row"><div class="col-xs-12 col-sm-6 col-md-3 widget--about"><div class="widget--content"><div class="footer--logo mb-20"> <img class="tap-logo" src="http://www.xu0.com/wp-content/uploads/2024/06/1718412997-7db64bdd170b2cd.png" data-dark="http://www.xu0.com/wp-content/uploads/2024/06/1718412997-7db64bdd170b2cd.png" alt="个人在线分享"></div><p class="mb-10">本站无任何商业行为</p></div></div><div class="col-xs-12 col-sm-3 col-md-2 col-md-offset-1 widget--links"><div class="widget--title"><h5>本站导航</h5></div><div class="widget--content"><ul class="list-unstyled mb-0"></ul></div></div><div class="col-xs-12 col-sm-3 col-md-2 widget--links"><div class="widget--title"><h5>友情链接</h5></div><div class="widget--content"><ul class="list-unstyled mb-0"></ul></div></div><div class="col-xs-12 col-sm-12 col-md-4 widget--newsletter"><div class="widget--title"><h5>快速搜索</h5></div><div class="widget--content"><form class="newsletter--form mb-30" action="http://www.xu0.com/" method="get"> <input type="text" class="form-control" name="s" placeholder="关键词"> <button type="submit"><i class="fa fa-arrow-right"></i></button></form><h6>本站由<a href="http://ritheme.com/" target="_blank" rel="noreferrer nofollow">RiPro主题</a>强力驱动</h6><h6><div class="payment"></div></h6></div></div></div></div><div class="site-info"> © 2018 Theme by - <a href="http://ritheme.com/" target="_blank" rel="noreferrer nofollow">本站无任何商业行为</a> & WordPress Theme. All rights reserved <a href="https://beian.miit.gov.cn" target="_blank" class="text">蒙ICP备2023002302号-2 <br></a><div class="footer-shouquan">「虚灵个人在线分享」 XU0.COM 提供免费学习资料分享,本站资料全部由网上搜集,仅供学习使用, 不得用来做违法违纪,如有侵权请联系,立即删除</div></div></div></footer><div class="dimmer"></div><div class="off-canvas"><div class="canvas-close"><i class="mdi mdi-close"></i></div><div class="logo-wrapper"> <a href="http://www.xu0.com/"> <img class="logo regular" src="http://www.xu0.com/wp-content/uploads/2024/06/1717773004-dc1d71bbb5c4d2a.png" alt="个人在线分享"> </a></div><div class="mobile-menu hidden-lg hidden-xl"></div><aside class="widget-area"></aside></div> <script defer src="data:text/javascript;base64,DQogICAgICAgIGNvbnNvbGUubG9nKCJcbiAlYyBSaVByby3lrZDkuLvpopggVjguMSAlYyBodHRwczovL3p5Zng4LmNuIFxuXG4iLCAiY29sb3I6ICNmYWRmYTM7IGJhY2tncm91bmQ6ICMwMzAzMDc7IHBhZGRpbmc6NXB4IDA7IiwgImJhY2tncm91bmQ6ICNmYWRmYTM7IHBhZGRpbmc6NXB4IDA7Iik7DQogICAgICAgIGNvbnNvbGUubG9nKCJTUUwg6K+35rGC5pWw77yaOTUiKTsNCiAgICAgICAgY29uc29sZS5sb2coIumhtemdoueUn+aIkOiAl+aXtu+8miA0Ni4zODE1NCIpOw0KICAgIA=="></script> <script defer src="data:text/javascript;base64,alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXskKCcuY3QgaDMgc3BhbicpLmNsaWNrKGZ1bmN0aW9uKCl7JCh0aGlzKS5hZGRDbGFzcygic2VsZWN0ZWQiKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCk7JCgnLmN0ID4gdWwnKS5lcSgkKHRoaXMpLmluZGV4KCkpLmFkZENsYXNzKCdzaG93Jyk7JCgnLmN0ID4gdWwnKS5lcSgkKHRoaXMpLmluZGV4KCkpLnNpYmxpbmdzKCkucmVtb3ZlQ2xhc3MoJ3Nob3cnKTt9KTskKCJwcmUgPiBjb2RlIikuYWRkQ2xhc3MoImxhbmd1YWdlLXBocCIpO30pO2pRdWVyeSgiLmhlYWRlci1kcm9wZG93biIpLmhvdmVyKGZ1bmN0aW9uKCl7alF1ZXJ5KHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTt9LGZ1bmN0aW9uKCl7alF1ZXJ5KHRoaXMpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTt9KTskKCcuaC1zY3JlZW4gbGknKS5jbGljayhmdW5jdGlvbigpeyQodGhpcykuYWRkQ2xhc3MoIm9uIikuc2libGluZ3MoKS5yZW1vdmVDbGFzcygpOyQoJy5jdCA+IHVsJykuZXEoJCh0aGlzKS5pbmRleCgpKS5hZGRDbGFzcygnc2hvdycpOyQoJy5jdCA+IHVsJykuZXEoJCh0aGlzKS5pbmRleCgpKS5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdzaG93Jyk7fSk7JCgiLmgtc291cCBsaSBpIikuY2xpY2soZnVuY3Rpb24oKXt2YXIgc291cEJ0bj0kKHRoaXMpLnBhcmVudCgpOyQoIi5oLXNvdXAgbGkiKS5yZW1vdmVDbGFzcygib3BlbiIpO3NvdXBCdG4uYWRkQ2xhc3MoIm9wZW4iKTt9KTs="></script> <script defer src="data:text/javascript;base64,JChmdW5jdGlvbigpe3ZhciBuYXZIZWlnaHQ9JCgiI25hdkhlaWdodCIpLm9mZnNldCgpLnRvcDt2YXIgbmF2Rml4PSQoIiNuYXZIZWlnaHQiKTtpZihuYXZIZWlnaHQ+MzYpe25hdkZpeC5hZGRDbGFzcygibmF2Rml4Iik7fQp3aW5kb3cub25zY3JvbGw9ZnVuY3Rpb24oKXtpZigkKHRoaXMpLnNjcm9sbFRvcCgpPm5hdkhlaWdodHx8JCh0aGlzKS5zY3JvbGxUb3AoKT4zNyl7bmF2Rml4LmFkZENsYXNzKCJuYXZGaXgiKTt9ZWxzZXtuYXZGaXgucmVtb3ZlQ2xhc3MoIm5hdkZpeCIpO319fSkKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXt9KQp2YXIgbmR0PSQoIiNoZWxwIGR0Iik7dmFyIG5kZD0kKCIjaGVscCBkZCIpO25kZC5lcSgwKS5zaG93KCk7bmR0LmNsaWNrKGZ1bmN0aW9uKCl7bmRkLmhpZGUoKTskKHRoaXMpLm5leHQoKS5zaG93KCk7fSk7"></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_27154160b5352fe140fcf82df293b2c3.js?ver=2.0'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_f4168d76f155c6b079459b12937ec426.js?ver=8.1'></script> <script defer src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgY2Fvemh1dGkgPSB7InNpdGVfbmFtZSI6Ilx1NGUyYVx1NGViYVx1NTcyOFx1N2ViZlx1NTIwNlx1NGVhYiIsImhvbWVfdXJsIjoiaHR0cDpcL1wvd3d3Lnh1MC5jb20iLCJhamF4dXJsIjoiaHR0cDpcL1wvd3d3Lnh1MC5jb21cL3dwLWFkbWluXC9hZG1pbi1hamF4LnBocCIsImlzX3Npbmd1bGFyIjoiMSIsInRlbmNlbnRfY2FwdGNoYSI6eyJpcyI6IiIsImFwcGlkIjoiIn0sImluZmluaXRlX2xvYWQiOiJcdTUyYTBcdThmN2RcdTY2ZjRcdTU5MWEiLCJpbmZpbml0ZV9sb2FkaW5nIjoiPGkgY2xhc3M9XCJmYSBmYS1zcGlubmVyIGZhLXNwaW5cIj48XC9pPiBcdTUyYTBcdThmN2RcdTRlMmQuLi4iLCJzaXRlX25vdGljZSI6eyJpcyI6IjAiLCJjb2xvciI6InJnYigzMywgMTUwLCAyNDMpIiwiaHRtbCI6IjxkaXYgY2xhc3M9XCJub3RpZnktY29udGVudFwiPjxoMz5SaVByb1x1NjcwMFx1NjViMFx1NzI0OFx1NjcyY1x1NjZmNFx1NjViMFx1NjVlNVx1NWZkNzxcL2gzPjxkaXY+XHU4ZmQ5XHU2NjJmXHU0ZTAwXHU2NzYxXHU3ZjUxXHU3YWQ5XHU1MTZjXHU1NDRhXHVmZjBjXHU1M2VmXHU1NzI4XHU1NDBlXHU1M2YwXHU1ZjAwXHU1NDJmXHU2MjE2XHU1MTczXHU5NWVkXHVmZjBjXHU1M2VmXHU4MWVhXHU1YjlhXHU0ZTQ5XHU4MGNjXHU2NjZmXHU5ODljXHU4MjcyXHVmZjBjXHU2ODA3XHU5ODk4XHVmZjBjXHU1MTg1XHU1YmI5XHVmZjBjXHU3NTI4XHU2MjM3XHU5OTk2XHU2YjIxXHU2MjUzXHU1ZjAwXHU1MTczXHU5NWVkXHU1NDBlXHU0ZTBkXHU1MThkXHU5MWNkXHU1OTBkXHU1ZjM5XHU1MWZhXHVmZjBjXHU2YjY0XHU1OTA0XHU1M2VmXHU0ZjdmXHU3NTI4aHRtbFx1NjgwN1x1N2I3ZS4uLjxcL2Rpdj48XC9kaXY+In0sInBheV90eXBlX2h0bWwiOnsiaHRtbCI6IjxkaXYgY2xhc3M9XCJwYXktYnV0dG9uLWJveFwiPjxcL2Rpdj48cCBzdHlsZT1cImZvbnQtc2l6ZTogMTNweDsgcGFkZGluZzogMDsgbWFyZ2luOiAwO1wiPlx1NTE0ZFx1OGQzOVx1NjIxNlx1OTRiYlx1NzdmM1x1NTE0ZFx1OGQzOVx1OGQ0NFx1NmU5MFx1NGVjNVx1OTY1MFx1NGY1OVx1OTg5ZFx1NjUyZlx1NGVkODxcL3A+IiwiYWxpcGF5IjowLCJ3ZWl4aW5wYXkiOjB9fTsKLyogXV0+ICovCg=="></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_3d63ae9fc20c9541c081782157cba6ee.js?ver=8.1'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/themes/ripro/assets/js/plugins/jquery.fancybox.min.js?ver=8.1'></script> <script defer src="data:text/javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgc29jaWFsUm9ja2V0ID0geyJhamF4X3VybCI6Imh0dHA6XC9cL3d3dy54dTAuY29tXC93cC1hZG1pblwvYWRtaW4tYWpheC5waHAiLCJ3aGVyZV93ZV9hdCI6eyJpZCI6MjQ5MzYsInR5cGUiOiJwb3N0IiwidXJsIjoiaHR0cDpcL1wvd3d3Lnh1MC5jb206ODFcLzI0OTM2Lmh0bWwiLCJzZXR0aW5nc19rZXkiOiJwb3N0X3R5cGVfcG9zdCJ9fTsKLyogXV0+ICovCg=="></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_1d5d2ad4f5dbdf913ba6de4401f4735d.js?ver=1.3.4'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_da7438dbb3b8b182b57a5e1060df6f34.js?ver=8.1'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/themes/ripro-child/assets/js/pace.min.js?ver=8.1'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_da612dba276a3e4d6ce92172f36c2e3b.js?ver=8.1'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/themes/ripro-child/assets/js/swiper.min.js?ver=8.1'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_a286291139f4b6620b3a05c35bfc300c.js'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_6223ec2de1bab9aaa9718f10b8bdd3bf.js'></script> <script defer type='text/javascript' src='http://www.xu0.com/wp-content/cache/autoptimize/js/autoptimize_single_348a660b84948fec7cb3af646936d009.js'></script> </body></html><!-- WP Fastest Cache file was created in 46.887324094772 seconds, on 15-07-24 7:51:29 -->