.vue文件的封装处理

原本的js对象编写过于繁琐,我们用.vue组件来拆分。

即,把app.js文件拆分为App.vue和Cpn.vue

1安装vue-loader 和 vue-template-compiler

npm install vue-loader vue-template-compiler --save-dev

配置webpack.config.js

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

报错,缺少VueLoaderPlugin插件,因为14版以上要开始自己安装插件,所以我们先用低版本

package.json

  "vue-loader": "^14.0.0",

然后执行npm install 重新安装

代码

index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>New Web Project</title>
    </head>
    <body>
      <div id='app'>
      <!--真实开发中这里什么也不写-->
     </div>
    </body>
    <script src="./dist/bundle.js"></script>
</html>

srcmain.js

//使用vue
import Vue from 'vue'

// import App from "./vue/app"
import App from "./vue/App.vue"

new Vue({
  el:'#app',
  data:{
    message:"Hello webpack"
  },
  template:"<App />",
  components:{
    App
  }
})

srcvueApp.vue

<template>
  <div>
     <h2 class='title'>{{message}}</h2>
     <button @click="btnClick">按钮</button>
      <Cpn></Cpn>
   </div>
</template>
<script>
  import Cpn from "./Cpn.vue";
  export default {
    name:"App",
    components:{
      Cpn
    },
    data(){
      return {
        message:'我是app组件绿色'
      }
    },
    methods:{
      btnClick(){
        
      }
    }
  }
</script>
<style scoped>
  .title{
    color: #4cff00;
  }
</style>

srcvueCpn.vue

<template>
    <div class='title'>
        <p>{{name}}</p>
    </div>
</template>

<script>
  export default {
    name: "Cpn",
    data(){
      return {
        name:'我是Cpn组件 紫色。'
      }
    }
  }
</script>

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

结果

源代码

链接:https://pan.baidu.com/s/1hjdOEgexZokYQ3aSudV1wg
提取码:l6ni

原文地址:https://www.cnblogs.com/polax/p/13032485.html