webpack中使用vue、component、vue-router

本文详细介绍了如何在Webpack项目中使用Vue和组件,以及配置Vue-Router。首先,在普通网页中引入Vue是通过script标签,而在Webpack中需要安装Vue包并配置vue-loader。接着,讲解了Webpack中如何定义和使用.vue组件,以及通过render函数将组件渲染到页面。此外,还阐述了在Webpack项目中设置Vue-Router的步骤,包括安装VueRouter、创建VueRouter实例以及挂载到Vue实例上。最后,提到了在组件中写样式的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、webpack中使用vue和组件

在普通网页中使用vue:
  1. 使用script标签,引入vue的包
  2. 在index页面,创建一个id为app的div容器
  3. 创建一个vue实例
在webpack中使用vue
  1. 安装vue包
npm i vue -S
  1. 引入vue包
import Vue form "vue"

注意: 在 webpack 中, 使用 import Vue from 'vue' 导入的 Vue 构造函数,功能不完整,只提供了 runtime-only 的方式,并没有提供 像网页中那样的使用方式

//以下路径导入的是功能完整的vue
import Vue from '../node_modules/vue/dist/vue.js'

//或者在配置文件中配置以下代码
resolve:{
        alias:{
             "vue$":'vue/dist/vue.js'
        }
    }

包的查找规则

  • 找项目根目录中有没有 node_modules 的文件夹
  • 在 node_modules 中 根据包名,找对应的 vue 文件夹
  • 在 vue 文件夹中,找 一个叫做 package.json 的包配置文件
  • 在 package.json 文件中,查找 一个 main 属性【main属性指定了这个包在被加载时候,的入口文件】
  1. 由于 在 webpack 中,推荐使用 .vue 这个组件模板文件定义组件,所以需要安装能解析这种文件的 loader
npm i vue-loader vue-template-compiler -D
  1. 在webpack.config.js配置文件中,配置vue-loader的 plugin,并且新增loader的配置项
//配置vue-loader的插件
const VueLoaderPlugin = require('./node_modules/vue-loader/lib/plugin.js');
plugins:[
       	 	new VueLoaderPlugin({})
	     ]
	     
//配置所有第三方loader模块的
module:{
        rules:[
            { test:/\.vue$/,use:"vue-loader"}
        ]
    }

  1. 定义一个 .vue 的组件,其中,组件有三部分组成: templatescriptstyle

  2. 使用 import login from './login.vue' 导入这个组件

  3. 创建vue实例new Vue({el:"#app",render:c => c(login)})

    在 webpack 中,如果想要通过 vue, 把一个组件放到页面中去展示,vm 实例中的 render 函数可以实现。

var vm = new Vue({
     el: '#app',
     data: {},
     methods: {},
     render: function (createElements) { // createElements 是一个 方法,调用它能够把 指定的 组件模板,渲染为 html 结构
       return createElements(login)
       // 注意:这里 return 的结果,会 替换页面中 el 指定的那个 容器
     }
  });
  1. 在页面中创建id为app的div元素,作为vue实例要控制的区域

二、webpack中使用vue-router

  1. 第一步,装包
npm i vue-router -S
  1. 导入 vue-router 包
import VueRouter from 'vue-router'
  1. 手动安装 VueRouter
 Vue.use(VueRouter)
  1. 创建VueRouter对象
var router = new VueRouter({
  routes: [
    { path: '/account', component: account },
    { path: '/goodslist', component: goodslist }
  ]
})
  1. 把router挂载到vm实例上
var vm = new Vue({
  el: '#app',
  render: c => c(app), 
  router 
})
给组件写样式
<style lang="scss" scoped>
//style 标签只支持普通的样式,如果想要启用 scss 或 less ,需要为 style 元素设置 lang 属性 
// 只要 style 标签, 是在 .vue 组件中定义的,那么,推荐都为 style 开启 scoped 属性
body {
  div {
    font-style: italic;
  }
}
</style>

补充

  1. Node中向外暴露成员的形式
module.exports = {}
//或者
exports

使用 var 名称 = require(‘模块标识符’) 导入成员

  1. ES6中使用export defaultexport向外暴露成员
//test.js

//export default的第一种写法
var info = {
  name: 'Alice',
  age: 18
}
export default info


//export default的第二种写法
export default {
 	name: 'Alice',
  	age: 18
}

export var title = '小星星'
export var content = '亮晶晶'
//main.js

import info,{title as tit,content} from './test.js'
console.log(info);
console.log(tit);
console.log(content);

注意

  • 在一个模块中,可以同时使用 export default 和 export 向外暴露成员

  • export default 向外暴露的成员,可以使用任意的变量来接收

  • 在一个模块中,export default 只允许向外暴露1次

  • export 可以向外暴露多个成员, 同时如果某些成员,我们在 import 的时候不需要,则可以不在 {} 中定义

  • 使用 export 向外暴露的成员,必须严格按照导出时候的名称,来使用 {} 按需接收,这种形式叫做【按需导出】;

  • 使用 export 导出的成员,如果想换个名称来接收,可以使用 as 来起别名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值