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 ...
随机推荐
- Delphi窗体显示Echarts图表
笨办法,先保存用着 unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Varian ...
- robotframework接口之上传图片
python-requests及robotframework-RequestsLibrary实现multipart/form-data接口上传文件. 如Fiddle抓包截图: 实现如截图: 不要自己在 ...
- office word memo
显示左侧目录树 office 和 wps 的差异 wps 的版本:视窗 ->文档结构图 office 的版本: 视图 ->导航窗格
- ZooKeeper02
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,主要是用来解决分布式应用中经常遇到的一些数据管理问题.
- LNMP平台搭建之一:nginx编译安装
参考博客:https://www.cnblogs.com/zhang-shijie/p/5294162.html jack.zhang 一.环境说明 系统环境:centos6.5 [root@lo ...
- BIOS 中断向量表
中断 描述 INT 00h CPU:除零错,或商不合法时触发 INT 01h CPU:单步陷阱,TF标记为打开状态时,每条指令执行后触发 INT 02h CPU:非可屏蔽中断,如引导自我测试时发生内存 ...
- day19 python之re模块正则练习
1.匹配标签 import re ret = re.search("<(?P<tag_name>\w+)>\w+</(?P=tag_name)>" ...
- textbox 未
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...
- SpringBoot缓存之redis--最简单的使用方式
第一步:配置redis 这里使用的是yml类型的配置文件 mybatis: mapper-locations: classpath:mapping/*.xml spring: datasource: ...
- C# 读取xml——XmlReader和XElement
1.有些xml文件头部有DTD,程序解析的时候会报错 如:其他信息: 打开外部 DTD“file:///E:/PM数据/MeContext=CDF2775/MeasDataCollection.dtd ...