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 ...
随机推荐
- (4.10)mysql备份还原——利用binlog+全备恢复误删表【不推荐使用】
关键误操作:mysql误删除 1.备份+binlog恢复数据 [1.1]场景:不小心误删除某张表 [1.2]解决方法:在另外一台机器,恢复全库+日志,然后导出删除的表,再插入会生产库. [1.3]案例 ...
- pymongo基础
PyMongo是MongoDB数据库的python模块 MongoDB是由C++语音编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统. win10 安装 4.0 使用官网的配置 使用 n ...
- .net 操作web.config文件
XmlDocument doc = new XmlDocument(); string wc = HttpContext.Request.PhysicalApplicationPath + @&quo ...
- office2007每次打开都要配置文件,怎么取消配置
有时候 Office2007打开文档,每次都提示需要安装.配置,配置完成之后,下次打开又需要配置点击取消就不能打开.非常的烦.ffice2007下载后为什么每次打开总需要置?office2007每次打 ...
- 2017-2018-2 20155228 《网络对抗技术》 实验五:MSF基础应用
2017-2018-2 20155228 <网络对抗技术> 实验五:MSF基础应用 1. 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需 ...
- Git 教程(四):标签和其他
标签管理 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库 ...
- [转载非常好的文章]JLink+GDBServer调试S3C6410裸板的初始化代码 For OK6410开发板
要调试裸板,有两种初始化方法,一个是用烧好的uboot初始化,再有就是直接用JLink+GDBServer初始化.代码参考了网上的资料,根据手头的OK6410开发板做了修改.整体代码如下: # Con ...
- Linux开局配置注意事项
1.修改ssh配置文件远程端口号,防止攻击 sed -ri 's/“#Port 22”/“Port 10086”/g‘ /etc/ssh/sshd_config 2.修改ssh配置文件 ...
- Vue 中如何引入第三方 JS 库
一绝对路径直接引入全局可用 二绝对路径直接引入配置后import 引入后再使用 三webpack中配置 aliasimport 引入后再使用 四webpack 中配置 plugins无需 import ...
- java集合类学习笔记1
一.集合的接口 java集合类库也将接口与实现相分离.首先看一下大家都熟悉的数据结构-队列是如何分离的.队列接口指出可以在队列的尾部添加元素,在队列的头部删除元素,并且可以查找队列中元素的个数.当需要 ...