<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <!--header是公共头部,这里放个容器,头部将会被加载到这里--> <div id="common-header"></div> <!--下面是其他本页的其他内容--> <div>正文内容区域</div> </div> </body> <script src="https://unpkg.com/vue"></script> <script type="text/javascript"> //这里写公用头部 //官网提供了vue.extend构造方法,直接用 var header = Vue.extend({ template: '<div class="wrap"><span>{{a}}</span><p>{{b}}</p></div>', data: function () { return { a: 1, b: '嘿嘿' } } }); var commonHeader = new header(); </script> <script type="text/javascript"> //这里将公共部分的头部加载进来,加载到我们在本页给的容器中 commonHeader.$mount('#common-header'); //本页的js var myApp = new Vue({ el: '#app', data: { } }); /* 一点感觉 * 1.一般来说,我们不会直接浏览器引用vue.js开发项目;感觉怪怪的, * 2.被迫开发一个页面中直接引用vue.js+jquery的项目,确实很快,30个页面的项目,两个人(后端接口已经有),三周过审上线 * */ </script> </html>
更新如下,可以对比一下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue全局组件</title> </head> <body> <div id="app"> <header> <my-component></my-component> </header> <div class='content'>{{ con }}</div> </div> </body> <script src="https://unpkg.com/vue"></script> <script type="text/javascript"> //注册一个全局组件 Vue.component('my-component', { template: '<p>{{ mes }}</p>', data: function () { return { mes: '嘿嘿' } } }); var myApp = new Vue({ el: '#app', data: { con: '内容' } }) </script> </html>