webpack中如何使用vue
1、安装 vue包:npm i vue -S
2、由于在webpack中,推荐使用.vue这个组件模版文件来定义组件,不然会出现vue.js移动和一些高级语法的不支持,因此需要安装能解析这种文件的loader:npm i vue-loader vue-template-complier -D
3、在main.js中,导入vue模块:import Vue from 'vue'
4、定义一个.vue结尾的组件,其中组件有三部分组成:template script style
5、使用 import login from './login.vue' 导入这个组件
6、创建vm的实例 var vm = new Vue({el:'#app',render:c=>c(login)})
7、在页面中创建一个id 为 app 的div 元素,作为我们vm实例要控制的区域
源码-main.js:
import $ from 'jquery'
import './css/index.css'
import './css/index.less'
import './css/index.scss'
import 'bootstrap/dist/css/bootstrap.css'
//import Vue from '../node_modules/vue/dist/vue.js'
import Vue from 'vue'
import login from './login.vue' $(function () {
$('li:odd').css('backgroundColor', 'cyan'),
$('li:even').css('backgroundColor', function () {
return '#' + 'F8F8F8'
})
}) //class关键字是es6中提供的新语法,用来实现es6中面向对象编程的方式
class Person {
//使用static关键字,可以定义静态属性,所谓的静态属性就是可以直接通过 类名直接访问的属性
//与静态属性对立的是实例属性:只能通过类的实例来访问的属性
//该语法属于高级语法,es6或以上,webpack自身是处理不了的,它需要借助第三方的loader来处理:Babel,它可以将高级语法转为低级语法,在webpack中可以运行两套命令:
//第一套:npm i babel-core babel-loader babel-plugin-transform-runtime -D
//第二套:npm i babel-preset-env babel-preset-stage-0 -D
static info = { name: 'zs', age: 20 }
} //访问Person 类身上的 info静态属性
console.log(Person.info) var vm = new Vue({
el: '#app',
data: {
msg: 'Cristin'
},
// components:{
// login
// } //在webpack中,如果想要通过vue把一个组件放到页面中展示,vm实例中的render函数可以实现,传统的components是不可以的
// render:function(createElements){
// return createElements(login)
// } //原始的render:function(createElements)简写
render: c => c(login)
})
import m222, { title as xiaoxingxing, content } from "./test";
console.log(m222)
console.log(xiaoxingxing + "----" + content) //1、导入vue-router包
import VueRouter from 'vue-router' //导入app组件
import app from './App.vue'
//导入Account 组件
import account from './main/Account.vue'
//导入 GoodsList 组件
import goodslist from './main/GoodsList.vue' //2、手动安装VueRouter
Vue.use(VueRouter) //3、创建路由对象
var router = new VueRouter(
{
routes: [
// account goodslist
{ path: '/account', component: account },
{ path: '/goodslist', component: goodslist }
]
}
) var rv = new Vue(
{
el: '#router',
render: c => c(app),
//4、路由对象挂在到rv上
router
}
)
源码:webpack.config.js
const path = require('path')
const htmlWebpackplugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const webpack = require('webpack');
const VueLoaderPlugin = require('vue-loader/lib/plugin'); //这个配置文件,其实就是一个js文件,通过Node中的模块操作向外暴露一个配置对象,然后命令行通过webpack命令直接被执行
module.exports = {
//配置文件中,需要手动指定入口和出口
//入口
entry: {
//表示要使用的webpack打包哪个文件
path: path.join(__dirname, './src/main.js'),
},
//出口
output: {
//指定打包好的文件输出到哪个目录里
path: path.join(__dirname, './dist'), //指定输出文件的名称
filename: 'bundle.js'
},
plugins: [
new webpack.NamedModulesPlugin(),
//new一个热更新的模块对象(步骤:1、devServer增加配置 2、引用webpack对象(const webpack = require('webpack') 3、插件数组中 new一个热启动对象 ))
new webpack.HotModuleReplacementPlugin(),
new VueLoaderPlugin(),
new CleanWebpackPlugin(),
new htmlWebpackplugin({
title: 'Output Management',
//根据模版页面来在缓存中生成想要的页面文件,指定模版文件路径
template: path.join(__dirname, './src/index.html'),
//生成的页面名称
filename: 'index.html'
})
],
devServer: {
//contentBase: './dist',
// 设置服务器访问的基本目录
//contentBase: path.resolve(__dirname, 'dist'), //最好设置成绝对路径
// 设置服务器的ip地址,可以是localhost
host: 'localhost',
// 设置端口
port: 8090,
// 设置自动拉起浏览器
open: true,
// 设置热更新
hot: true
},
devtool: 'inline-source-map', //用于配置所有的第三方模块加载器规则的,它【module】是一个对象
module: {
rules: [
//配置处理.css文件的第三方loader规则
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
//配置处理.less文件的第三方loader规则,需要安装less-loader\less
{ test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] },
//配置处理.scss文件的第三方loader规则,需要安装node-sass\sass-loader
{ test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
//配置处理图片文件的第三方loader规则,需要安装url-loader
{ test: /\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader?limit=99639&name=[hash:8]-[name].[ext]' },
//处理字体文件的loader配置信息
{ test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' },
//处理class文件的loader配置信息,需要安装 babel-core\babel-loader\babel-plugin-transform-runtime
{ test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ },
//处理vue文件的loader配置信息
{ test: /\.vue$/, use: 'vue-loader' },
]
},
resolve: {
//修改Vue被导入时候的包的路径
alias: {
//"vue$": "vue/dist/vue.js"
}
}
}
源码:login.vue
<template>
<div>
<h1>自动化平台前端---{{msg}}</h1>
</div>
</template> <script>
export default {
data() {
return {
msg: "Robin"
};
},
methods: {
show() {
console.log("调用了 login.vue 中的 show 方法");
}
}
};
</script> <style>
</style>
源码:前端
<!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>
<ul>
<li>这是第1个li</li>
<li>这是第2个li</li>
<li>这是第3个li</li>
<li>这是第4个li</li>
<li>这是第5个li</li>
<li>这是第6个li</li>
<li>这是第7个li</li>
<li>这是第8个li</li>
<li>这是第9个li</li>
<li>这是第10个li</li>
</ul>
<div class="box"></div>
<div class="btn-group" role="group" aria-label="...">
<button type="button" class="btn btn-default">Left</button>
<button type="button" class="btn btn-default">Middle</button>
<button type="button" class="btn btn-default">Right</button>
</div>
<div id="app">
<p>{{msg}}</p> <login></login>
</div> <div id="router"> </div>
</body> </html>
webpack中如何使用vue的更多相关文章
- webpack 中如何使用 vue
1. 安装vue的包: cnpm i vue -S 2. 由于 在 webpack 中,推荐使用 .vue 这个组件模板文件定义组件,所以,需要安装 能解析这种文件的 loader cnpm i vu ...
- 总结梳理:webpack中如何使用vue
1. 安装vue的包 cnpm i vue -S 2. 由于在webpack中,推荐使用 .vue这个组件模板文件定义的组件,所以,需要安装, 能解析这个文件的loader: cnpm i vu ...
- 在Vue的webpack中结合runder函数
在Vue的webpack中结合runder函数 1.引入: <h1>下面是vue的内容:</h1> <div id="app"> <log ...
- 在webpack中配置vue.js
在webpack中配置vue.js 这里有两种在webpack中配置vue.js的方法,如下: 1.在main.js中引入vue的包: index.html: <!DOCTYPE html> ...
- vue2.0基础知识,及webpack中vue的使用
## 基础指令 ## [v-cloak]{ Display:none; } <p v-cloak>xx{{msg}}xx</p> //解决闪烁问 ...
- webpack 中导入 vue 和普通网页使用 vue 的区别(四)
一:在普通网页中使用 vue 使用 script 标签,引入 vue 包 在 ndex 页面中,创建一个 id 为 App 的 div 容器 通过 new Vue 得到一个 vue 实例 二:在 we ...
- vue项目中postcss-pxtorem的使用及webpack中的配置 css中单位px和em,rem的区别
移动手机版要求我们在制作嵌入h5的时候去适配不同的手机.适配有多重模式,有flex.百分比等.字体大小的控制也有px.百分比.rem等单位,webpack中 px转rem. vue项目中postcss ...
- 使用pug(jade),以及在vue+webpack中使用pug(jade)
一:在HTML中使用pug 在css中有预处理器less和scss来使我们的样式表更加的简介,那么在HTML中有没有这样的格式呢,答案是有的,那就是pug(前身是jade),效果如下: 转译以后 好, ...
- webpack中使用vue
1.安装vue cnpm i install -S 2.由于在 webpack 中,推荐使用 .vue 的文件模板文件定义组件 , 所以 ,需要安装 能解析这种文件的 loader cnpm i vu ...
随机推荐
- 学号 20175201张驰 《Java程序设计》第6周学习总结
学号 20175201张驰 <Java程序设计>第6周学习总结 教材学习内容总结 第7章 ·1.Java支持在一个类中声明另一个类,这样的类称作内部类,而包含内部类的类称为内部类的外嵌类 ...
- python 查找日志关键字
1.抓取出含有关键字”xiaoming”的行 2.在上一个问题的基础上,假设所在行的格式为location=xiaoming, value=xxx,请筛选出value值 #!/usr/bin/pyth ...
- CDI services--interceptors(拦截器)
1.拦截器综述 拦截器的功能是定义在Java拦截器规范. 拦截器规范定义了三种拦截点: 业务方法拦截, 生命周期回调侦听, 超时拦截(EJB)方法. 在容器的生命周期中进行拦截 1 2 3 4 pub ...
- 设计 mysql的单例模式及完整功能
class MySQLDB{ private $host; private $port; private $username; private $password; private $charset; ...
- eslint的安装与使用
什么是 ESLint ESLint(中文站点)是一个开源的 JavaScript 代码检查工具,使用 Node.js 编写,由 Nicholas C. Zakas 于 2013 年 6 月创建.ESL ...
- (.NET高级课程笔记)Lambd、Linq总结
知识总结 1.委托简介:委托是一种类型,可以写在类里,也可以写在类外面,级别和类一样高. 2.匿名方法.匿名类 3.Lambda表达式:goes to 4.系统自带委托:Func/Action 5.扩 ...
- 18.12.09-C语言练习:兔子繁衍问题 / Fibonacci 数列
题目: 问题解析: 这是典型的/Fibonacci 数列问题.具体这里不赘述. 问题中不论是初始的第1对兔子还是以后出生的小兔子都是从第3个月龄起每个月各生一对兔子. 设n1,n2,n3分别是每个月1 ...
- codeforces-5
这题可害苦了我最后用了大哥的代码才过的 Diverse String #include<iostream> #include<cstdio> #include<strin ...
- 【论文速读】Yuliang Liu_2017_Detecting Curve Text in the Wild_New Dataset and New Solution
Yuliang Liu_2017_Detecting Curve Text in the Wild_New Dataset and New Solution 作者和代码 caffe版代码 关键词 文字 ...
- 极致21点开发DAY4
完成的内容:1.修改上一篇博文中的Bug 2.完成任务窗口逻辑 using System; using System.Collections.Generic; using UnityEngine; ...