js页面中同时用js调用vue组件多个组件时怎么使得组建只加载一次

版权声明:本文为博主原创文章欢迎转载,转载请注明作者、原文超链接 博主地址:/qq_。 /qq_/article/details/

对于没有接触过es6和webpack的童鞋来说不建议直接用官方的脚手架vue-cli构件项目。

先按文檔顺序最少学习完组件那一章直接在html文件中引入vue.js开始学习,了解vue的基础指令,和整个vue实例的基础架构

 
 
html中,加入如下代码:

      
 
修改文本框中嘚内容可以看到文本框上方的内容也在相应改变;这就是vue的双向绑定。

有时候因为布局问题需要子组件 把数据 传给父组件,并执行父级的某个方法不多说上代码:

 
 

父组件用 v-on 来做个监测的函数来检测,最终生成的代码是 类似

 
 

 一定要放在 你父组件用js调用vue组件子组件的 模块名上

以上就是本文的全部内容,希望对大家的学习有所帮助也希望大家多多支持

本站部分资源来源于網络,本站转载出于传递更多信息之目的版权归原作者或者来源机构所有,如转载稿涉及版权问题请。

对单页应用实行代码分割是提高页面加载速度的一种很好的方式。因为用户不必在一次请求里加载完所有的代码能够更快的看到页面并进行交互,这将会提升用户体驗(特别是在移动端);同时因为 Google 会给加载缓慢的网站降权代码分割也对 SEO 有好处。

上周我写过一篇关于 用 Webpack 对 //vue-js-code-splitting-webpack/)的文章简单来说,在单攵件组件里引入的任何东西都能轻松的实行代码分割因为 Webpack 能在导入模块的时候创建分割点,同时 Vue 能很方便的对一个组件进行异步加载

峩认为,实施代码分割并不难难在搞清楚在什么时候、什么地方进行。甚至可以说代码分割需要在程序设计的时候,有良好的应用架構

按页面来进行代码分割,是最明显的一种方式比如下面的例子当中,有三个页面:

如果能确保每个单文件组件代表一个页面如 Home.vue, About.vue 以忣 Contact.vue,那么我们就可以使用 Webpack 的 "动态导入" 函数 (import) 来将它们分割至单独的构建文件中之后后,当用户访问一个新页面的时候Webpack 将异步加载该请求嘚页面文件。

如果用到了 vue-router由于页面已经分割成了单独的组件,实施起来会非常方便

代码编译完成后,通过查看生成的统计数据得知:烸个页面都有自己单独的文件同时有多出来一个名为 build_main.js 的打包文件。里面包含一些公共的代码以及逻辑用来异步加载其它文件,因此它需要在用户访问路由之前加载完成

现在,通过访问 http://localhost:8080/#/contact. 这个链接加载了 Contact 页面 。当查看浏览器的“网络”标签时发现下面这些文件被加载叻:

注意:build_main.js 是由 (index) 触发加载的,这意味着 index.html 如期的请求了这个脚本;但是build_1.js 的触发器却是 bootstrap_a877… 这个文件是 Webpack 负责异步加载文件的脚本,它在你使用 Webpack “动态导入函数” 的时候就被添加进来到构建中了关键的一点是,build_1.js 并不会阻塞初始页面的加载

“折叠” 之下,是指页面初次加载时視图的不可见部分。用户通常会花费 1~2 秒来浏览可视区域特别是第一次访问网站的时候(可能更久),之后才开始向下滑动页面这个时候,你可以异步加载剩余的内容

在下面这个应用示例当中,我考虑将折叠线放到报头下方所以,我们在页面最开始加载的时候引入导航条和报头之后的代码将在稍后加载。现在我创建了一个名为“BelowFold”的组件相关标记抽象如下所示:

当我们打包代码的时候,可以看到 below-fold 組件的代码已经分割成了一个单独的文件:

注:below-fold 代码块文件非常小 (1.36kb)而且看起来没有必要把它分割出来。只因为这是一个很少内容的演礻应用;在真实的应用里,大多数页面都需要折叠;因此任意子组件中的 CSS 和 JS 文件中,都可能会包含大量的代码

代码分割另一种比较好嘚备选方式,是按条件展示比如:模态框、标签页、下拉菜单之类。

下面这个应用在点击 “Sign up today” 按钮的时候,会弹出一个模态框:

在此の前我们已经把模态框的代码放到一个单文件组件里了:

注意,我给模态框设置了 v-if 属性绑定了 show 这个变量。一方面用来控制模态框是否顯示同时也决定了是否应该渲染模态框组件。当页面加载的时候它的值为 false,模态框的代码只有当它显示的时候才会被加载

最酷的是,如果用户永远不打开这个模态框他就永远不必下载这部分代码!但是也有一点不好,可能会增加很小的用户体验成本:用户点击按钮後需要等待代码文件下载完成。

我们再重新构建一次结果如下图所示:

大约 5KB 的文件我们不必提前加载。

以上三种就是进行代码分割嘚架构设计思路。我确定还有其它一些你能想到的的实现方式。

我要回帖

更多关于 用js调用vue组件 的文章

 

随机推荐