最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年10月14日 16:30:35   作者:taoquns  
這篇文章主要介紹了require.js 加載 vue組件 r.js 合并壓縮的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

準備:

vue.js 原本是學(xué)習(xí)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

//數(shù)據(jù)
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"
}],
};
//定義組件 模板 數(shù)據(jù) 方法
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
// 定義組件內(nèi)容,數(shù)據(jù),方法
var footer = Vue.extend({
//模板
template: '<div class="footer">test footer test footer</div>',
//數(shù)據(jù)
data: function() {
return {
name: 'test name'
}
},
//方法
methods: {
show: function() {
alert(this.name);
}
}
});
// 注冊組件的標簽 <tq-footer> 綁定組件
Vue.component('tq-footer', footer);
//實例化
new Vue({
el: '#footer',
});
//vue組件結(jié)束

二、使用require 加載 vue 組件

引入require.js

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

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

將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規(guī)范的文件

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 ,在陸續(xù)引入vue組件文件

vue 組件用define() 包裹

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

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

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

// 頭部 header
//require define 函數(shù) start
define(['vue'], function(Vue) {
//數(shù)據(jù)
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"
}],
};
//定義組件 模板 數(shù)據(jù) 方法
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 函數(shù) end
tq-footer.js
// 尾部 footer 
// require.js define() 函數(shù)包裹
define(['vue'], function(Vue) {
//vue 組件
/*
* template html模板文件
* data 數(shù)據(jù) 返回函數(shù)中返回對象
* methods 方法集合
*/
// 定義組件內(nèi)容,數(shù)據(jù),方法
var footer = Vue.extend({
template: '<div class="footer">\
<div class="footer-main">\
<p>taoqun個人博客 | 記錄 | 展示 | 使用vue\
<a href="mailto:taoquns@foxmail.com">聯(lián)系我: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組件結(jié)束
});
//define end

require 方法 預(yù)覽成功


三、r.js 合并壓縮

使用require 的方式 會加載很多的js文件,我們都知道這樣會產(chǎn)生對服務(wù)器的多次請求,優(yōu)化性能第一就是減少http請求次數(shù)

簡單的說下r.js

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

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

準備

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

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

這里我們將r.js 放到j(luò)s文件中,建立一個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 設(shè)置基目錄

paths 模塊的引用

name 主模塊的引用

out 輸入位置

然后控制臺 定位到r.js目錄下 node r.js -o build.js 命令進行合并壓縮,當目錄下出現(xiàn)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 合并壓縮的實例,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 詳解Vue router路由

    詳解Vue router路由

    這篇文章主要為大家介紹了Vue 的router路由,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • Vue Render函數(shù)創(chuàng)建DOM節(jié)點代碼實例

    Vue Render函數(shù)創(chuàng)建DOM節(jié)點代碼實例

    這篇文章主要介紹了Vue Render函數(shù)創(chuàng)建DOM節(jié)點代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • vue使用swiper的時候第二輪事件不會觸發(fā)問題

    vue使用swiper的時候第二輪事件不會觸發(fā)問題

    這篇文章主要介紹了vue使用swiper的時候第二輪事件不會觸發(fā)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 詳解基于vue-cli3快速發(fā)布一個fullpage組件

    詳解基于vue-cli3快速發(fā)布一個fullpage組件

    這篇文章主要介紹了詳解基于vue-cli3快速發(fā)布一個fullpage組件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • vue iview實現(xiàn)分頁功能

    vue iview實現(xiàn)分頁功能

    這篇文章主要為大家詳細介紹了vue iview實現(xiàn)分頁功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Vue.js 事件修飾符的使用教程

    Vue.js 事件修飾符的使用教程

    在實際開發(fā)中,不可避免的會使用到對于事件的操作,如何處理 DOM 事件流,成為我們必須要掌握的技能。這篇文章主要介紹了Vue.js 事件修飾符的使用教程,需要的朋友可以參考下
    2018-11-11
  • Nuxt3重點特性使用舉例問題記錄

    Nuxt3重點特性使用舉例問題記錄

    Nuxt3?使用?Vue.js?作為視圖引擎,Nuxt3?中提供了所有?Vue?3?功能,所以我們創(chuàng)建的Nuxt項目其實也是vue3項目,這篇文章主要介紹了Nuxt3重點特性使用舉例記錄,需要的朋友可以參考下
    2022-12-12
  • Javascript對象及Proxy工作原理詳解

    Javascript對象及Proxy工作原理詳解

    這篇文章主要為大家介紹了Javascript對象及Proxy工作原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Vue.js 通過jQuery ajax獲取數(shù)據(jù)實現(xiàn)更新后重新渲染頁面的方法

    Vue.js 通過jQuery ajax獲取數(shù)據(jù)實現(xiàn)更新后重新渲染頁面的方法

    今天小編小編就為大家分享一篇Vue.js 通過jQuery ajax獲取數(shù)據(jù)實現(xiàn)更新后重新渲染頁面的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vue3?中實現(xiàn)元素拖拽功能

    Vue3?中實現(xiàn)元素拖拽功能

    這篇文章主要介紹了在Vue3中實現(xiàn)飄逸的元素拖拽,在本次案例中需要認真思考對應(yīng)的幾個坐標和移動時坐標如何更新,事件的使用要成對出現(xiàn),如何在這個拖拽的 Icon 上增加點擊事件時還需要多做一些處理,需要的朋友可以參考下
    2023-07-07

最新評論

达孜县| 贵州省| 沅江市| 尚义县| 上林县| 武鸣县| 肥乡县| 施甸县| 开平市| 英超| 四会市| 梨树县| 宜良县| 伽师县| 太原市| 罗源县| 石屏县| 崇信县| 三江| 贡山| 阜新| 霸州市| 平原县| 安顺市| 诏安县| 临猗县| 都匀市| 翁源县| 绍兴县| 镇康县| 巨野县| 渑池县| 右玉县| 栾城县| 通山县| 廉江市| 小金县| 长治县| 麦盖提县| 宾阳县| 平度市|