源码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue组件</title>
<script src="vue.js"></script>
<style type="text/css">
body {
padding: 15px;
}
</style>
<link href="https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.css" rel="stylesheet">
</head>
<body>
<div id="app">
<praise-component title="赞↑" pclass="btn btn-info"></praise-component>
<praise-component title="踩↓" pclass="btn btn-danger"></praise-component>
</div>
<!-- 直接用这个标签写是不会被 html 去解析的 但是可以再下面的 vue 中引用这个模板 -->
<template id="praise-template">
<h3>{{ title }}</h3>
<input @click="updateCount" class="{{ pclass }}" type="button" value="{{ count }}">
</template>
<script>
Vue.component('praise-component',{
props:['title','pclass'],//给这个组件添加默认的属性,使其可以调用
template:"#praise-template",
data:function() {
return {
//return 出去一个值 这样的话每个组件上引用的数据就不会是同一个值了 虽然初始值看起来是一样的
count:0
}
},
methods:{
updateCount:function(){
this.count ++;
}
}
})
new Vue({
el: "#app"
});
</script>
</body>
</html>
- 需要注意的是如果组件的名称写成了驼峰式的命名 vue 默认会将其识别为全部是小写的,所以建议是使用连词符来进行命名 如果是非得使用驼峰的话需要使用一个 npm 包
decamelize 来进行转换 -- 它可以将你写的驼峰式命名的组件名称转换成连词的那种写法
- 可以在 chrome 浏览器中配合 vue 扩展程序实时的看到使用的组件以及对应组件其数据的变化