<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <title>Title</title> <!-- Bootstrap --> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery,所以必須放在前邊) --> <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> <!-- 加載 Bootstrap 的所有 JavaScript 插件。你也可以根據需要只加載單個插件。 --> <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <script type="text/javascript" src="./node_modules/vue/dist/vue.js"></script> </head> <body> <div id="box"> <form action="" class="form-horizontal"> <bs-panel> <h4 slot="title">注冊</h4> <bs-input title="標題" value="內容" slot="body"></bs-input> <bs-input title="點擊數" value="100" slot="body"></bs-input> </bs-panel> </form> </div> <script type="text/x-template" id="bsPanel"> <div class="panel panel-default"> <div class="panel-heading"> <slot name="title">頭部</slot> </div> <div class="panel-body"> <slot name="body">主體占位1</slot> </div> </div> </script> <script type="text/x-template" id="bsInput"> <div class="form-group"> <label for="" class="col-sm-2 control-label">{{title}}</label> <div class="col-sm-9"> <input type="text" class="form-control" v-model="value"> </div> </div> </script> <script type="text/javascript"> var bsPanel = { template:'#bsPanel', }; var bsInput = { props:['title','value'], template:'#bsInput', }; var app = new Vue({ el:'#box', data:{}, components:{bsPanel,bsInput} }); </script> </body> </html>
效果如下: