Vue初学30-vue组件化的使用方案

vue在使用时是通过el属性与dom元素绑定,dom元素在html文件中,如果将dom元素都放在html文件中,随着页面的复杂,元素会越来越多,可读性差,维护起来也不方便。因此,需要采用组件化的思想组织页面元素。

el和template

vue中通过el属性与dom元素关联,vue中还有template属性,生成后,template中的元素将替换el中关联的dom元素。

将main.js和index.html修改如下:

main.js

import Vue from 'vue'
const vue = new Vue({
    el:'#app',
    template:`
    <div>
      <h2>{{message}}</h2>
    </div>
    `,
    data:{
        message:'hello world'
    }
})

index.html

<body>
<div id="app">
</div>
<script src="dist/bundle.js"></script>
</body>

重新打包,效果如下:

template的提取 

 将template放在vue里面,组织起来仍然比较乱,将template作为模板提取出来比较好。

修改main.js如下:

import Vue from 'vue'

const App = {
    template:` <div>
      <h2>{{message}}</h2>
    </div>`,
    data()
    {
        return {
            message:'hello world'
        }
    }
}
const vue = new Vue({
    el:'#app',
    template:'<App/>',
    components:{
        App
    }
})

模板可以单独放在一个js文件里面,在src目录下新建vue目录,vue目录下新建app.js文件

app.js文件如下:

export default {
    template:` <div>
      <h2>{{message}}</h2>
    </div>`,
    data()
    {
        return {
            message:'hello world'
        }
    }
}

main.js文件修改如下:

import Vue from 'vue'
import App from './vue/app.js'
const vue = new Vue({
    el:'#app',
    template:'<App/>',
    components:{
        App
    }
})

这样vue中代码更加清晰简洁,但是app.js中dom元素和js代码的层次不够清晰。

vue component提取

在vue目录下新建vue component文件App.vue

App.vue如下:

<template>
    <div>
       <h2 class='title'>{{message}}</h2>
    </div>
</template>

<script>
export default {
     name: 'App',
     data()
         {
             return {
                 message:'hello world'
             }
         }
};
</script>

<style scoped>
.title{
    font-size:20px;
    color:red;
}
</style>

App.vue文件有三部分<template>标签中放dom元素与app.js中的template标签对应,<script>标签中放data()函数等,<style>标签中放样式。

main.js修改如下:

import Vue from 'vue'
import App from './vue/App.vue'
const vue = new Vue({
    el:'#app',
    template:'<App/>',
    components:{
        App
    }
})

通过命令安装所需要的loader

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

重新打包,报错,没有合适的vue-loader,怀疑是vue-loader版本问题,在package.json中修改vue-loader的版本为 "vue-loader": "^13.7.3" ,运行命令 npm install 重新安装。

安装完成后,npm run build 重新打包,效果如下。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值