webpack4.x +vue2.9.6+vue-loader15.x 實現(xiàn)一個簡單的demo

前言

webpack4.x
vue2.96
vue-loader15.x
安裝vue-loader成功感覺需要運氣盟庞,我也不知道怎么成功的盒卸。有時間總結一下。

結構目錄:


圖片.png
安裝vue          cnom i vue -S
安裝loader      cnpm install vue-loader vue-template-compiler -D

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
   <div id="app"></div>
</body>
</html>

package.json

{
  "name": "webpack4_vue_study5",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server --mode development",
    "build": "webpack"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "clean-webpack-plugin": "^1.0.1",
    "css-loader": "^2.1.0",
    "html-webpack-plugin": "^3.2.0",
    "style-loader": "^0.23.1",
    "vue-loader": "^15.6.2",
    "vue-template-compiler": "^2.6.6",
    "webpack": "^4.29.3",
    "webpack-cli": "^3.2.3",
    "webpack-dev-server": "^3.1.14"
  },
  "dependencies": {
    "vue": "^2.6.6"
  }
}

main.js


//import $ from 'jquery'

//import './css/index.css'


import Vue from "../node_modules/vue/dist/vue.js"


import login from "./login.vue"


 /* let login = {
     template:"<h1>這是login組件,是使用網頁中的形式創(chuàng)建出來的</h1>"
 } */

let vm = new Vue({
    el:'#app',
    data:{
        msg:'獸人永不為奴!'
    },
    /* components:{
        login
    } */
    render:c => c(login),
   
   
})


webpack.config.js

// webpack配置文件

// 這個配置文件推掸,其實就是一個 JS 文件,通過Node中的模塊操作缝驳,向外暴露了一個配置對象
let path = require('path')
 let webpack = require('webpack') //啟用熱更新第二步
let htmlWebpackPlugin = require('html-webpack-plugin')

const VueLoaderPlugin = require('vue-loader/lib/plugin');
module.exports = {
    entry:'./src/main.js',//入口
    output:{
        filename:'bundle.js',
        path:path.resolve('./dist')
    },//出口
    devServer:{
         open:true,
         port:3000,
         contentBase:'./src',
         hot: true, //啟用熱更新第一步
    },//開發(fā)服務器
    module:{
        rules:[
         /*   {test:/\.css$/,use:['style-loader','css-loader']},//用來處理css的第三代模塊,處理順序慈俯,從后向前
            {test:/\.less$/,use:['style-loader','css-loader','less-loader']},//用來處理less文件的第三方模塊
            {test:/\.scss$/,use:['style-loader','css-loader','sass-loader']},
            {test:/\.(jpg|jpeg|png|gif|bmp)$/,use:'url-loader?limit=30000&name=[hash:8]-[name].[ext]'},//處理圖片路徑的loader
            // limit 給定的值,是圖片的大小滑蚯,單位是byte浪蹂,如果我們引用的圖片大于這個大小抵栈,則不會轉為base64編碼,如果小于這個大小坤次,則會轉為base64編碼
            // name=[name].[ext]表示名字后綴不變,name=[hash:8]-[name].[ext]前面有8為哈希值
            {test:/\.(ttf|eot|svg|woff|woff2)$/,use:'url-loader'},//處理字體文件loader
            {test:/\.js$/,use:'babel-loader',exclude:/node_modules/},//配置babel來轉化高級的ES語法 */
            {test:/\.vue$/,use:'vue-loader'},//處理vue的loader
        ],//所有的匹配規(guī)則
    },//模塊配置(用于配置所有的第三方模塊加載器)
    plugins:[
         new webpack.HotModuleReplacementPlugin(),//啟用熱更新第三步
        new htmlWebpackPlugin({ // 創(chuàng)建一個在內存匯總生成html頁面的插件
            template:path.resolve('./src/index.html'),//指定模板頁面,
            filename:'index.html',//指定生成頁面的名稱
        }),
        new VueLoaderPlugin(),
    ],//插件
    mode:'development',//開發(fā)者模式
    resolve:{
       
    },//配置解析
}

login.vue

<template>
    <div>
        <p>hey jude</p>
        <p>hey jude</p>
        <p>hey jude</p>
        
    </div>
</template>

<script>
   /* export default {
        data(){
            return {
                msg:"123"
            }
        },
        methods:{
            show(){
                console.log("調用了login.vue的show方法")
            }
        }
    }
    // 在ES6中古劲,規(guī)定了如何 導入 和 導出 ,模塊
    // ES6中導入模塊缰猴,使用 import 模塊名稱 from "模塊標識符"
    // 在ES5中产艾,使用 export default 和 export 向外暴露成員 */
</script>

<style>
    
</style>

訪問 http://localhost:3000/

圖片.png

步驟:
1安裝vue ,vue-loader,
2定義.vue結尾的組件。 由三部分組成 template script style
3使用import導入這個組件
4創(chuàng)建 vm的實例

let vm = new Vue({
    el:'#app',
    data:{
        msg:'在webpack嘗試使用Vue'
    },
     components:{
         login
     }
     在webpack中滑绒,如果想要通過vue把一個組件放到頁面中去闷堡,需要使用render函數
     render:function(createElements){
         return createElements(login)
     },   
    render:c => c(login),
})

es6中導入模塊 使用 import 模塊名稱 from '模塊標識符',
在es6中,使用export default 和export向外暴露成員

在node中使用var 名稱=require('模塊標識符')

export default向外暴露的成員可以使用任意的變量接受疑故,可以自定義接受規(guī)則杠览。
在一個模塊中export default只允許向外暴露一次

test.js
var  info = {
    name:"tony",
    age:18
}
export default info


export default {
    address:'BeiJing'
}
main.js

import login from "./login.vue"


import info  from "./test.js"

console.log(info)
使用export

只能使用花括號接收

test.js
export var  title='人民教育出版社'
export var  name='翟天臨'
export var  age=17

main.js

import m1,{title as title2,name,age as ageage}from "./test.js"
console.log(m1)
console.log(title2)
console.log(name)
console.log(ageage)

圖片.png

1export可以暴露多個成員 ,
2不一定需要導出幾個接受幾個纵势。
3導出的成員必須嚴格按照導出時候的名稱使用花括號接收,也可以用as 起別名來接收

安裝路由
cnpm i vue router -S

.vue里面的lang 屬性 scoped屬性
抽離路由模塊

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末踱阿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钦铁,更是在濱河造成了極大的恐慌软舌,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牛曹,死亡現(xiàn)場離奇詭異佛点,居然都是意外死亡,警方通過查閱死者的電腦和手機黎比,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門超营,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人焰手,你說我怎么就攤上這事糟描。” “怎么了书妻?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵船响,是天一觀的道長。 經常有香客問我躲履,道長见间,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任工猜,我火速辦了婚禮米诉,結果婚禮上,老公的妹妹穿的比我還像新娘篷帅。我一直安慰自己史侣,他們只是感情好拴泌,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惊橱,像睡著了一般蚪腐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上税朴,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天回季,我揣著相機與錄音,去河邊找鬼正林。 笑死泡一,一個胖子當著我的面吹牛,可吹牛的內容都是我干的觅廓。 我是一名探鬼主播鼻忠,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杈绸!你這毒婦竟也來了粥烁?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蝇棉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芥永,有當地人在樹林里發(fā)現(xiàn)了一具尸體篡殷,經...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年埋涧,在試婚紗的時候發(fā)現(xiàn)自己被綠了板辽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡棘催,死狀恐怖劲弦,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情醇坝,我是刑警寧澤邑跪,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站呼猪,受9級特大地震影響画畅,放射性物質發(fā)生泄漏。R本人自食惡果不足惜宋距,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一轴踱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谚赎,春花似錦淫僻、人聲如沸诱篷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棕所。三九已至,卻和暖如春细办,著一層夾襖步出監(jiān)牢的瞬間橙凳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工笑撞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留岛啸,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓茴肥,卻偏偏與公主長得像坚踩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瓤狐,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內容