亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

require.js 加載 vue組件 r.js 合并壓縮的實例

2019-11-20 08:44:57
字體:
來源:轉載
供稿:網友

準備:

vue.js 原本是學習vue組件

require.js 然后想到用require 加載

r.js 文件太多 合并

文件目錄

忽略部分文件及文件夾

一、先說vue 組件

先引入vue 再引入vue組件

Vue.extend({}) 定義組件 template data methods

Vue.component(),注冊組件的標簽,標簽在html中是一個掛載點

new Vue() 進行實例化

index.html

// css引入 略<div id="header"><tq-header></tq-header></div><div id="footer"><tq-footer></tq-footer></div><script src="lib/vue.js"></script><script src="/vue-module/tq-header.js"></script><script src="/vue-module/tq-footer.js"></script>

tq-header.js

//數據var data = {list: [{name: "首頁",url: "./index.html",}, {name: "博客",url: "http://taoquns.com"}, {name: "微博",url: "http://weibo.com/1654438844/profile?topnav=1&wvr=6"}, {name: "簡書",url: "http://www.jianshu.com/users/633b8f612f8e/latest_articles"}, {name: "作品展示",url: "http://taoquns.com/mypage"}],};//定義組件 模板 數據 方法var header = Vue.extend({template: '<div class="header">/<div class="header-main">/<ul>/<li v-for="i in list">/<a v-bind:href="i.url">/{{i.name}}/</a>/</li>/</ul>/</div>/</div>',data: function() {return data;},methods: {show: function() {}},});// 注冊組件標簽 <tq-header> 綁定組件 Vue.component('tq-header', header);//實例化new Vue({el: '#header'});tq-footer.js// 定義組件內容,數據,方法var footer = Vue.extend({//模板template: '<div class="footer">test footer test footer</div>',//數據data: function() {return {name: 'test name'}},//方法methods: {show: function() {alert(this.name);}}});// 注冊組件的標簽 <tq-footer> 綁定組件Vue.component('tq-footer', footer);//實例化new Vue({el: '#footer',});//vue組件結束

二、使用require 加載 vue 組件

引入require.js

data-main 制定主模塊,負責引入哪些文件

子組件 需要用 define()函數包裹 見例子

將vue 和vue組件的引入注釋掉,引入require.js data-main 指定主模塊文件 js文件夾下的 script.js

<script src="lib/require.js" data-main="js/script.js"></script><!-- 注釋 --><!-- <script src="./lib/vue.js"></script> --><!-- <script src="./vue-module/tq-header.js"></script> --><!-- <script src="./vue-module/tq-footer.js"></script> --><!-- <script src="vue-module/tq-img-view.js"></script> -->

配置script.js文件 看阮一峰的require.js

baseUrl 默認路徑 基目錄

shim 非AMD規范的文件

paths 制定各個模塊的加載路徑

script.js

require.config({baseUrl:'lib',shim:{'vue':{exports:'vue'}},paths:{'vue':'../lib/vue','header':'../vue-module/tq-header','footer':'../vue-module/tq-footer'},});require(['vue','header','footer'],function(vue,header,footer){});

這樣主模塊就會先引入vue ,在陸續引入vue組件文件

vue 組件用define() 包裹

由于子組件依賴vue,所以需要寫好依賴,并將參數Vue傳進去 如:

// 函數參數Vue 大寫的V哦// 這樣內部的調用Vue.extend() 等方法就可以正常使用了define(['vue'],function(Vue){Vue.exxtend({...});Vue.component(.....);new Vue({....});});

tq-header.js 和之前差不多就是加了define()

// 頭部 header//require define 函數 startdefine(['vue'], function(Vue) {//數據var data = {list: [{name: "首頁",url: "./index.html",}, {name: "博客",url: "http://taoquns.com"}, {name: "微博",url: "http://weibo.com/1654438844/profile?topnav=1&wvr=6"}, {name: "簡書",url: "http://www.jianshu.com/users/633b8f612f8e/latest_articles"}, {name: "作品展示",url: "http://taoquns.com/mypage"}],};//定義組件 模板 數據 方法var header = Vue.extend({template: '<div class="header">/<div class="header-main">/<ul>/<li v-for="i in list">/<a v-bind:href="i.url">/{{i.name}}/</a>/</li>/</ul>/</div>/</div>',data: function() {return data;},methods: {show: function() {}},});// 注冊組件標簽 <tq-header> 綁定組件Vue.component('tq-header', header);//實例化new Vue({el: '#header'});});//require define 函數 endtq-footer.js// 尾部 footer // require.js define() 函數包裹define(['vue'], function(Vue) {//vue 組件/** template html模板文件* data 數據 返回函數中返回對象* methods 方法集合*/// 定義組件內容,數據,方法var footer = Vue.extend({template: '<div class="footer">/<div class="footer-main">/<p>taoqun個人博客 | 記錄 | 展示 | 使用vue/<a href="mailto:taoquns@foxmail.com">聯系我:email</a>/</p>/</div>/</div>',data: function() {return {name: 'function'}},methods: {show: function() {alert(this.name);}}});// 注冊組件的標簽 <tq-footer> 綁定組件Vue.component('tq-footer', footer);//實例化new Vue({el: '#footer',});//vue組件結束});//define end

require 方法 預覽成功


三、r.js 合并壓縮

使用require 的方式 會加載很多的js文件,我們都知道這樣會產生對服務器的多次請求,優化性能第一就是減少http請求次數

簡單的說下r.js

r.js是requireJS的優化(Optimizer)工具,可以實現前端文件的壓縮與合并,在requireJS異步按需加載的基礎上進一步提供前端優化,減小前端文件大小、減少對服務器的文件請求。

就是寫一個配置文件,將頁面需要的js組件文件合并到一個,然后require.js 直接引用合并壓縮后的文件就可以了,只需要加載一個文件。

準備

r.js 下載一個r.js文件放到目錄中

node.js 本地需要安裝node.js

這里我們將r.js 放到js文件中,建立一個build.js 配置文件

然后說下build.js 的配置

build.js

({baseUrl:'../vue-module/',paths:{'header':'tq-header','footer':'tq-footer','imgview':'tq-img-view','vue':'../lib/vue',},name:'script',out:'main.js'})

我這里比較簡單

baseUrl 設置基目錄

paths 模塊的引用

name 主模塊的引用

out 輸入位置

然后控制臺 定位到r.js目錄下 node r.js -o build.js 命令進行合并壓縮,當目錄下出現main.js 文件時,表示成功了。

然后將 index.html 中 data-main 原來的script.js改成 main.js 打開就好了

<script src="lib/require.js" data-main="js/main.js"></script>

以上所述是小編給大家介紹的require.js 加載 vue組件 r.js 合并壓縮的實例,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品十八以下禁看| 国产成人综合久久| 国产日产久久高清欧美一区| 国产亚洲精品久久久久久777| 成人97在线观看视频| 国产一区二区三区在线播放免费观看| 欧美激情图片区| 精品调教chinesegay| 欧美成在线观看| 国产成人精品优优av| 亚洲国产欧美一区二区丝袜黑人| 久久亚洲国产成人| 日韩电影免费观看中文字幕| 精品色蜜蜜精品视频在线观看| 欧美精品生活片| 欧美中文在线免费| 美女啪啪无遮挡免费久久网站| 亚洲精品日韩丝袜精品| 日韩av一区二区在线观看| 国产精品日韩欧美综合| 97在线免费视频| 午夜精品www| 国产亚洲精品成人av久久ww| 久久手机免费视频| 午夜精品久久久久久久久久久久久| 国产精品久久久久久久7电影| 91精品国产综合久久男男| 中文字幕日韩精品在线| 97免费中文视频在线观看| 清纯唯美日韩制服另类| 日韩在线观看网站| 日韩的一区二区| 久久频这里精品99香蕉| 日韩在线中文字幕| 国产免费一区二区三区在线能观看| 另类少妇人与禽zozz0性伦| 亚洲第一精品夜夜躁人人爽| 社区色欧美激情 | 欧美激情性做爰免费视频| 欧美色xxxx| 精品久久香蕉国产线看观看gif| 欧美午夜无遮挡| 国产一区二区欧美日韩| 国产亚洲欧美一区| 精品国产一区久久久| 日韩资源在线观看| 亚洲成人网在线观看| 欧美日韩国产一区二区| 欧美美女18p| 亚洲午夜久久久影院| 欧美限制级电影在线观看| 1769国产精品| 亚洲最大福利网| 亚洲精品中文字幕有码专区| 亚洲欧洲偷拍精品| 色妞色视频一区二区三区四区| 日本亚洲欧美三级| 国产精品 欧美在线| 91中文精品字幕在线视频| 91久久国产综合久久91精品网站| 亚洲最大av网| 九九热视频这里只有精品| yellow中文字幕久久| 久久久噜久噜久久综合| 国产精品专区第二| 亚洲精品成a人在线观看| 亚洲精品日产aⅴ| 91久久久久久久一区二区| 亚洲夜晚福利在线观看| 中文字幕欧美专区| 国产精品免费电影| 成人激情电影一区二区| 亚洲欧美日韩国产成人| 92看片淫黄大片欧美看国产片| 日本久久久久久| 亚洲最大福利视频网站| 91黑丝高跟在线| 欧美wwwwww| 国产精品国产自产拍高清av水多| 日本精品va在线观看| 亚洲午夜女主播在线直播| 成人国产在线激情| 中文字幕亚洲欧美一区二区三区| 中文字幕精品—区二区| 久久久久久久999| 国产一区二区激情| 欧美日韩精品在线| 久久精品国产欧美亚洲人人爽| 色噜噜狠狠色综合网图区| 精品久久久一区二区| 2019中文字幕在线免费观看| 欧美精品国产精品日韩精品| 黄色成人av网| 亚洲女成人图区| 亚洲一区二区日本| 亚洲精品日韩欧美| 日韩视频精品在线| 国产主播精品在线| 日本精品久久久久久久| 欧美日韩在线视频观看| 欧美日韩中文字幕日韩欧美| 亚洲精品动漫久久久久| 伊人精品在线观看| 亚洲欧美日韩爽爽影院| 97精品国产91久久久久久| 精品中文字幕在线2019| 中文字幕精品一区二区精品| 欧美在线观看一区二区三区| 国产精品丝袜久久久久久高清| 深夜福利日韩在线看| 国产精品999999| 国产精品激情av电影在线观看| 在线日韩av观看| 国产精品成人播放| 国产精品福利在线| 国产日韩欧美在线播放| 亚洲成人激情在线观看| 欧美小视频在线| 国产日韩综合一区二区性色av| 91久久精品国产91久久| 中文字幕欧美精品在线| 欧美伊久线香蕉线新在线| 国产精品免费小视频| 亚洲免费电影一区| 亚洲精品国产免费| 日本精品久久久久影院| 国产亚洲一区二区精品| 国产精品久久久久久久久久新婚| 精品久久久视频| 91久久国产精品91久久性色| 日韩av在线影视| xxxxx91麻豆| 欧美激情精品久久久久久蜜臀| 日韩福利视频在线观看| 国产美女精品免费电影| 91久久久久久久久久久| 国产精品免费久久久久影院| 欧美成人精品一区二区三区| 一本一本久久a久久精品牛牛影视| 成人妇女免费播放久久久| 韩国欧美亚洲国产| 久久久www成人免费精品| 亚洲天堂av在线免费观看| 亚洲一区二区三区777| 国产精品一区二区三区在线播放| 在线观看视频99| 北条麻妃久久精品| 日本精品久久中文字幕佐佐木| 国产精品h片在线播放| 久久亚洲国产成人| 亚洲精品ady| 久久69精品久久久久久久电影好| 国产日韩精品一区二区| 81精品国产乱码久久久久久| 亚洲自拍高清视频网站| 国产精品久久久久久久久免费| 久久91精品国产91久久久| 国产91精品久久久| 一区二区欧美亚洲| 国产精品美女免费看| 久久亚洲精品国产亚洲老地址| 日韩美女中文字幕| 91精品久久久久久久久| 亚洲欧洲视频在线|