源码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Vue组件</title>
  6. <script src="vue.js"></script>
  7. <style type="text/css">
  8. body {
  9. padding: 15px;
  10. }
  11. </style>
  12. <link href="https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.css" rel="stylesheet">
  13. </head>
  14. <body>
  15. <div id="app">
  16. <praise-component title="赞↑" pclass="btn btn-info"></praise-component>
  17. <praise-component title="踩↓" pclass="btn btn-danger"></praise-component>
  18. </div>
  19. <!-- 直接用这个标签写是不会被 html 去解析的 但是可以再下面的 vue 中引用这个模板 -->
  20. <template id="praise-template">
  21. <h3>{{ title }}</h3>
  22. <input @click="updateCount" class="{{ pclass }}" type="button" value="{{ count }}">
  23. </template>
  24. <script>
  25. Vue.component('praise-component',{
  26. props:['title','pclass'],//给这个组件添加默认的属性,使其可以调用
  27. template:"#praise-template",
  28. data:function() {
  29. return {
  30. //return 出去一个值 这样的话每个组件上引用的数据就不会是同一个值了 虽然初始值看起来是一样的
  31. count:0
  32. }
  33. },
  34. methods:{
  35. updateCount:function(){
  36. this.count ++;
  37. }
  38. }
  39. })
  40. new Vue({
  41. el: "#app"
  42. });
  43. </script>
  44. </body>
  45. </html>
  • 需要注意的是如果组件的名称写成了驼峰式的命名 vue 默认会将其识别为全部是小写的,所以建议是使用连词符来进行命名 如果是非得使用驼峰的话需要使用一个 npm 包
    decamelize 来进行转换 — 它可以将你写的驼峰式命名的组件名称转换成连词的那种写法

image.png

  • 可以在 chrome 浏览器中配合 vue 扩展程序实时的看到使用的组件以及对应组件其数据的变化

image.png