vue23:vue-loader

vue-loader:
    其他loader ->  css-loader、url-loader、html-loader.....
    后台: nodeJs(模块化)    ->  require  exports
    broserify  最早提出,模块加载,只能加载js
    webpack   模块加载器, 一切东西都是模块, 最后打包到一块了
    require(‘style.css‘);    ->   css-loader、style-loader

    vue-loader基于webpack

.css、.js、.html、.php、.....

a.vue需要webpack编译成浏览器可以看懂的。

    .vue文件:
        放置的是vue组件模块代码

        <template>
            html
        </template>

        <style>
            css
        </style>

        <script>
            js    (平时代码、ES6浏览器兼容性不好)    babel-loader编译成es5代码
        </script>
-------------------------------------
简单的目录结构:
    |-index.html
    |-main.js        入口文件
    |-App.vue        vue文件,官方推荐命名法第一个字母大写
    |-package.json        工程文件(项目依赖、名称、配置)
        npm init --yes 生成
    |-webpack.config.js        webpack配置文件

ES6: 模块化开发
    导出模块:
        export default {}
    引入模块:
        import 模块名 from 地址
--------------------------------------------
webpak准备工作:
    cnpm install webpack --save-dev      //不带服务器版本
    cnpm install webpack-dev-server --save-dev      //带服务器版本

    App.vue    -> 变成正常代码        [email protected]
    cnpm install [email protected] --save-dev

    cnpm install vue-html-loader --save-dev

    vue-html-loader、css-loader、vue-style-loader、
    [email protected](加载js的)

babel相关插件:
    babel-loader
    babel-core
    babel-plugin-transform-runtime
    babel-preset-es2015
    babel-runtime

最最核心:
下载 "vue": "^1.0.28"

webpack.config.js

module.exports={
    entry:‘./main.js‘,  //入口文件

    output:{  //出口
        path:__dirname,
        filename:‘build.js‘//官方名称
    },

    module:{
        loaders:[
            {test:/\.vue$/, loader:‘vue-loader‘},// \.是转义,vue$以vue结尾的文件,用vue-loader编译,
            {test:/\.js$/, loader:‘babel‘, exclude:/node_modules/}//编译js结尾的文件,使用abel-loader来编译,
        ]
    },
    babel:{
        presets:[‘es2015‘],
        plugins:[‘transform-runtime‘]
    }
};

package.json

{
  "name": "vue-loader-demo",
  "version": "1.0.0",
  "description": "",
  "main": "main.js",
  "scripts": {
    "dev": "webpack-dev-server --inline --hot --port 8082"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.17.0",
    "babel-loader": "^6.2.5",
    "babel-plugin-transform-runtime": "^6.15.0",
    "babel-preset-es2015": "^6.16.0",
    "babel-runtime": "^6.11.6",
    "css-loader": "^0.25.0",
    "vue-hot-reload-api": "^1.3.2",
    "vue-html-loader": "^1.2.3",
    "vue-loader": "^8.5.4",
    "vue-style-loader": "^1.0.0"
  },
  "dependencies": {
    "vue": "^1.0.28"
  }
}

main.js

import Vue from ‘vue‘   //下载的 "vue": "^1.0.28"
import App from ‘./App.vue‘

new Vue({
    el:‘body‘,
    components:{
        app:App
    }
});

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <app></app>  <!--组件-->
    <script src="build.js"></script>  <!--出口js文件-->
</body>
</html>

App.vue

<template>
    <h1>welcome Vue</h1>
    <h2 @click="change">{{msg}}</h2>
    <my-menu></my-menu>
</template>
<script>
    import Menu from ‘./components/Menu.vue‘

    export default{
        data(){
            return {
                msg:‘welcome Vue ^_^‘
            }
        },
        methods:{
            change(){
                this.msg=‘wahaha‘
            }
        },
        components:{
            ‘my-menu‘:Menu
        }
    }
</script>
<style>
    body{
        background: #ccc
    }
</style>

Menu.vue

<template>
    <ul>
        <li>111</li>
        <li>111</li>
        <li>111</li>
    </ul>
</template>
<script>

</script>
时间: 2024-11-05 14:44:31

vue23:vue-loader的相关文章

Vue Loader 作用域CSS(scoped)——/deep/ 深入组件选择器

用过vue组件的前端同学应该都遇到过一个问题,就是在当前页的组件有自定义样式,而用了scoped编译出的样式对组件内部并不起作用,最后要写全局样式才能有效,但是可能会污染到其他组件,其实我们可以用/deep/来解决此问题. 关于scoped请查看:https://www.cnblogs.com/vickylinj/p/9573395.html 1.混合本地和全局样式 您可以在同一组件中包含全局和非全局样式,此方法可能造成污染: <style> /* global styles */ </

配置webpack loader vue 报错:Module build failed: TypeError: this._init is not a function

单文件组件 引入时报错 配置webpage.config.js中的vue 需要如下写法 { test: /\.vue/, loader: "vue-loader", } 之前写的loader 是vue, 并没有加 -loader所以报错

webpack加载postcss,以及autoprefixer的loader

webpack2.0加载postcssloader以及autoprefixer实现自动根据兼容性的需求给css加私有前缀的功能,给开发带来便利, 下面是我的配置信息,亲测有效: 1.webpack.config.js的配置: module: { rules: [ { test: /\.vue$/, loader: 'vue-loader', options: { // vue-loader options go here postcss: [require('autoprefixer')({ b

Vue常用经典开源项目汇总参考-海量

Vue常用经典开源项目汇总参考-海量 Vue是什么? Vue.js(读音 /vju/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用. Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 易用(已经会了HTML,CSS,J

vue+cordova项目

教你用Cordova打包Vue项目 现在国内越来越多的开发者使用Vue开发混合app,但是当大家开发完成过后才发现不知道该怎么将Vue项目打包成app.据我现在的了解打包Vue项目目前流行的就是使用weex和cordova.weex是阿里提供并且Vue的作者也极力推荐的,有兴趣的可以去学习使用一下.因为我本身是做angular+ionic的,所以比较青睐cordova,下面我就教大家怎么使用cordova打包Vue项目: 第一步:安装cordova 如果已经安装则直接跳过,否则执行以下命令: n

怎样通过已经使用过webpack+vue+vueRouter+vuecli的配置文件package.json创建一个项目

首先,我们自己得手动创建一个webpack+vue+vueRouter+vuecli工程,执行下面:如:新建一个vue项目,创建一个基于"webpack"的项目,项目名为vuedemo: $ vue init webpack vuedemo 安装完成后进入工程名称再根据原来项目的配置文件初始化 $ cd vuedemo $ npm install 但是由于在新建的时候对eslint的选择中选择了Yes,所以后面根据配置package.json的时候,发现没有eslint-friendl

nodejs+webpack+vue之webpack

webpack是一款模块加载器兼打包工具,把JS.样式,图片都作为模块来使用和处理.项目下有个配置文件webpack.config.js,用来告诉webpack需要做什么,本项目的webpack.config.js文件内容如下: 引入模块: var path = require('path') var webpack = require('webpack') 入口文件及输出文件配置: 通过entry节点可以配置入口文件,且支持多个入口文件,每个模板只会有一个入口文件. 通过oupput节点可以配

vue+ vue-router + webpack 踩坑之旅

说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案   老司机可以忽略下面的内容了 1)起因  考虑到数据分离的问题  因为server是express搭的   自然少不了res.render("xx",data)    这句话的意思就是去查找相应的模板文件然后在用数据去渲染在将渲染好的页面去返回给浏览器,给浏览器去解析,渲染模板其实就是做的替换字符串+拼接字符串的活  各种的模板引擎也有各个优化的点(比如可以将对应的模板编译的函数保存在内存中,然后在通

Vue组件开发分享

在开始本文之前,你可能需要先了解以下相关内容: Vue.js  一款高性能轻量化的MVVM框架 Webpack  前端模块化代码构建工具 Vue组件介绍 基于vue.js高效的双向数据绑定特性,让我们在开发高可用组件时可以更加专注于数据逻辑开发: 忘记DOM操作,忘记事件绑定,让开发的专注力集中于数据上: 1.定义需要使用的数据及类型 2.在合适的时机更新数据 3.在模板上绑定数据与视图的映射关系 4.开放对外调用接口 代码 https://github.com/xiaoyunchen/vue-

vue安装与配置

直接引入 <script src="https://unpkg.com/vue"></script> 用npm安装   $ npm install vue Vue.js 提供一个官方命令行工具,vue-cli可创建并启动一个带热重载.保存时静态检查以及可用于生产环境的构建配置的项目 # 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 webpack 模板的新项目 $ vue init webpack my