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 ...
随机推荐
- AFNetWorking同步请求
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); //创建信号量 AFHTTPSessionManager *manager ...
- Linux 下如何修改用户名(同时修改用户组名和家目录)
有时候,由于某些原因,我们可能会需要重命名用户名.我们可以很容易地修改用户名以及对应的家目录和 UID.-- Shusain 本文导航◈ 修改用户名12%◈ 修改家目录43%◈ 更改用户 UID52% ...
- linux kettle
https://blog.csdn.net/zzq900503/article/details/79110810
- 【心得】-NO.114.面试.1 -【To HR And Interviewer】
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...
- pwn学习日记Day2 基础知识积累
知识杂项 shell-storm.org的shellcode数据库 使用pwntools库把shellcode作为输入传递给程序,尝试使用io.interactive()与程序进行交互,发现可以执行s ...
- 如何解决loss NAN的问题
问题 如上图所示,第二次迭代时出现NAN值,nan表示无穷大或者非数值,一般是在一个数除以0或者log(0)时会出现无穷大.可能的原因有:1)学习率过大:2)batch过大:3)不当的损失函数等. 试 ...
- 文件中间修改内容遇到OSEerror
for i in f: 实际上是一直在调用 f.next() .(表明在交互模式下不能使用f.tell())从报错来看,是说 f.next() 方法被调用的时候,f.tell() 方法不可以被调用.
- Leetcode: The Maze(Unsolved locked problem)
There is a ball in a maze with empty spaces and walls. The ball can go through empty spaces by rolli ...
- React-typescript-antd 常见问题
一.The key 'Accept' is not sorted alphabetically //tslint.json { "extends": ["tslint:r ...
- 极致21点开发DAY4
完成的内容:1.修改上一篇博文中的Bug 2.完成任务窗口逻辑 using System; using System.Collections.Generic; using UnityEngine; ...