vuejs学习3.4 webpack基本使用——配置Vue

下载

下载特定版本

npm install vue@2.6.11 --save

使用vue

//后面必须是小写的vue
import Vue from "vue"
const app = new Vue({
  el:"#app",
  data:{
    message:"我是message",
  },
})



<div id="app">{{message}}</div>

使用后报错:
在这里插入图片描述
解决方法:
在webpack.config.js中配置:

resolve:{
    //alias别名
    alias:{
      'vue$':'vue/dist/vue.esm.js'
    }
  }

在这里插入图片描述

真实代码

如果需要将data中数据显示到界面,必须要修改iindex.html,如果后面自定义组件,也需要修改,但是在真实代码中不会频繁的进行修改,可以通过template来实现

el和template区别

template会替换整个el

index.html中
<div id="app"></div>

new Vue({
  el:"#app",
  template:`<div>
    <h2>{{message}}</h2>
    <button @click="btn_click">按钮</button>
  </div>`,
  data:{
    message:"我是message",
  },
  methods:{
    btn_click(){
      console.log("点击按钮");
    }
  }
})

运行结果:
在这里插入图片描述
id=app消失,因为整个div会被template替换

代码抽取

抽取一

由于template中代码过多,可以定义一个组件

import Vue from "vue"
const cpn = {
  template:`<div>
    <h2>{{message}}</h2>
    <button @click="btn_click">按钮</button>
  </div>`,
  data(){
    return {
      message:"我是message"
    }
  },
  methods:{
    btn_click(){
      console.log("点击按钮");
    }
  }
}
new Vue({
  el:"#app",
  template:`<cpn/>`,
  components:{
    cpn,
  }
})

抽取二

创建一个vue文件夹,下创建cpn.js,抽取组件

export default {
  template:`<div>
    <h2>{{message}}</h2>
    <button @click="btn_click">按钮</button>
  </div>`,
  data(){
    return {
      message:"我是message"
    }
  },
  methods:{
    btn_click(){
      console.log("点击按钮");
    }
  }
}

而在main.js中直接导入cpn即可

import Vue from "vue"
import cpn from "./vue/cpn"
new Vue({
  el:"#app",
  template:`<cpn/>`,
  components:{
    cpn,
  }
})

抽取三

在vue文件夹下创建vue component类型文件cpn.vue,将cpn.js进行抽取替换

<template>
  <div>
    <h2 class="title">{{message}}</h2>
    <button @click="btn_click">按钮</button>
  </div>
</template>

<script>
  export default {
    name: "cpn",
    data(){
      return {
        message:"我是message"
      }
    },
    methods:{
      btn_click(){
        console.log("点击按钮");
      }
    }
  }
</script>

<style scoped>
  .title{
    color: green;
  }
</style>

在main.js中进行导入

import Vue from "vue"
import cpn from "./vue/cpn.vue"
new Vue({
  el:"#app",
  template:`<cpn/>`,
  components:{
    cpn,
  }
})

然后npm run build后报错
在这里插入图片描述
打包vue类型文件也需要合适的loader才能正常加载显示

安装vue-loader vue-template-compiler

vue-loader是对vue文件的加载,vue-template-compiler是对vue文件的编译

npm install vue-loader@13.0.0 vue-template-compiler@2.5.21 --save-dev

配置

{
        test: /\.vue$/,
        use: ['vue-loader']
      }

用于省略扩展名问题:
在webpack.config.js中添加extensions: [’.js’, ‘.css’, ‘.vue’],可以省略扩展名

resolve:{
   extensions: ['.js', '.css', '.vue'],
    //alias别名
    alias:{
      'vue$':'vue/dist/vue.esm.js'
    }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值