51

52

  <div id="app"><my-cpn></my-cpn></div><script src="../js/vue.js"></script><script>const cpnConstructor = Vue.extend({template: `<div id="app"><h2>龙门客栈</h2><p>大闹天宫</p><p>七十二变</p></div>`})Vue.component('my-cpn', cpnConstructor);const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,}})</script>

53

  <div id="app"><cpn></cpn></div><div id="app1"><cpn></cpn></div><script src="../js/vue.js"></script><script>const cpnConstructor = Vue.extend({template: `<div id="app"><h2>龙门客栈</h2><p>大闹天宫</p><p>七十二变</p></div>`})Vue.component('cpn', cpnConstructor);const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,}});const app1 = new Vue({el: '#app1'})</script>

  <div id="app"><cpn></cpn></div><div id="app1"><cpn></cpn></div><script src="../js/vue.js"></script><script>const cpnConstructor = Vue.extend({template: `<div id="app"><h2>龙门客栈</h2><p>大闹天宫</p><p>七十二变</p></div>`})// Vue.component('cpn', cpnConstructor);const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,},components: {cpn: cpnConstructor}});const app1 = new Vue({el: '#app1'})</script>

54

  <div id="app"><!-- <cpn1></cpn1> --><cpn2></cpn2></div><script src="../js/vue.js"></script><script>// const cpn = Vue.extend({})const cpnConstructor1 = Vue.extend({template: `<div id="app"><h2>龙门客栈</h2><p>大闹天宫</p><p>七十二变</p></div>`})const cpnConstructor2 = Vue.extend({template: `<div id="app"><h2>大鱼海棠</h2><cpn1></cpn1></div>`,components: {cpn1: cpnConstructor1}})// Vue.component('cpn', cpnConstructor);const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,},components: {// cpn1: cpnConstructor1,cpn2: cpnConstructor2}});</script>

55

全局

  <div id="app"><cpn1></cpn1></div><script src="../js/vue.js"></script><script>// const cpnConstructor1 = Vue.extend({//   template: `//   <div id="app">//     <h2>龙门客栈</h2>//   </div>//   `// })Vue.component('cpn1',{template: `<div id="app"><h2>龙门客栈</h2></div>`});const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,},// components: {//   cpn1: cpnConstructor1// }});</script>

局部

  <div id="app"><cpn1></cpn1></div><script src="../js/vue.js"></script><script>const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,},components: {'cpn1': {template: `<div><h2>大鱼海棠</h2></div>`}}})</script>

56

  <div id="app"><cpn1></cpn1></div><script type="text/x-template" id="cpn"><div><h2>失落沙洲</h2></div></script><script src="../js/vue.js"></script><script>const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,},components: {'cpn1': {template: '#cpn'}}})</script>

  <template id="cpn"><div><h2>失落沙洲</h2></div></template>

这样更简便

57

  <div id="app"><cpn1></cpn1></div><template id="cpn"><div><h2>{{title}}</h2></div></template><script src="../js/vue.js"></script><script>Vue.component('cpn1', {template: '#cpn',data() {return {title: '樱吹雪'}}})const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,}})</script>

###data是函数形式的,不能是对象;函数有作用域

  <div id="app"><cpn1></cpn1><cpn1></cpn1><cpn1></cpn1></div><template id="cpn"><div><h2>当前计数:{{counter}}</h2><button @click='increment'>+</button><button @click='decrement'>-</button></div></template><script src="../js/vue.js"></script><script>Vue.component('cpn1', {template: '#cpn',data() {return {counter: 0}},methods: {increment(){this.counter++;},decrement(){this.counter--;}}})const app = new Vue({el: '#app',data: {firstName: 'Kobe',age: 17,}})</script>

58-父==>子

<div id="app"><cpn :csuperstar='superstar' :cname='name'></cpn>
</div>
<template id="cpn"><div><p>{{cname}}</p><ul><li v-for='item in csuperstar'>{{item}}</li></ul></div>
</template><script src="../js/vue.js"></script>
<script>//Vue.compoment('cpn',{})const cpn = {template: '#cpn',// props: ['csuperstar','cname'],props: {// 1,类型限制// csuperstar: Array,// cname: String// 2,提供默认值以及必传值cname: {type: String,default: 'Kobe',required: true},// 类型为对象或数组(引用值)时候,默认值必须是一个函数csuperstar: {type: Array,default(){return []}}},data(){return {}},methods: {}}const app = new Vue({el: '#app',data: {name: 'Bryant',superstar: ['Curry','Jordan','James','Dukan','Onial']},components: {cpn}})
</script>

59-Vue小驼峰

<div id="app"><cpn :c-Super-Star='superStar' :c-Name='name'></cpn>
</div>
<template id="cpn"><div><p>{{cName}}</p><ul><li v-for='item in cSuperStar'>{{item}}</li></ul></div>
</template><script src="../js/vue.js"></script>
<script>// Vue.compoment('cpn',{})const cpn = {template: '#cpn',// props: ['csuperstar','cname'],props: {// 1,类型限制// csuperstar: Array,// cname: String// 2,提供默认值以及必传值cName: {type: String,default: 'Kobe',required: true},// 类型为对象或数组(引用值)时候,默认值必须是一个函数cSuperStar: {type: Array,default(){return []}}},data(){return {}},methods: {}}const app = new Vue({el: '#app',data: {name: 'Bryant',superStar: ['Curry','Jordan','James','Dukan','Onial']},components: {cpn}})
</script>

60

<div id="app"><!-- // 父组件监听 --><cpn @itemclick="cpnClick"></cpn>
</div><template id="cpn"><div><button v-for="item in categories" @click="btnClick(item)">{{item.name}}</button></div>
</template><script src="../js/vue.js"></script>
<script>// Vue.compoment('cpn',{})const cpn = {template: '#cpn',data(){return {categories: [{id: 'a', name: '热门推荐'},{id: 'b', name: '手机数码'},{id: 'c', name: '家用电器'},{id: 'd', name: '电脑办公'}]}},methods: {btnClick(item){// 子组件发射事件: 自定义事件this.$emit('itemclick', item)}}}const app = new Vue({el: '#app',data: {name: 'Bryant',superStar: ['Curry','Jordan','James','Dukan','Onial']},components: {cpn},methods: {cpnClick(item){console.log(item.name);}}})
</script>

62-回顾

2020-11-22 Vue-10组件化开发(1)相关推荐

  1. Vue.js组件化开发实践

    Vue.js组件化开发实践 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一 ...

  2. VUE.JS 组件化开发实践

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模 ...

  3. Vue.js 组件化开发

    三.组件化开发 1.1 组件化的实现和使用步骤 组件注册步骤解析 1.2 全局组件和局部组件 1.3 父组件和子组件 1.4 注册组件语法糖 1.5 组件模板抽离的写法 1.6 组件数据存放 1.7 ...

  4. Vue/React组件化开发的一些思考

    组件化开发的优势 组件化开发利用了面向对象的威力,易于构建规模比较大的应用并且获得比较高的可维护性,可扩展性.Vue.React厂商及社区不但提供了组件化开发的框架,而且提供了易于起步并包含了从编码. ...

  5. 【Vue.js 知识量化】组件化开发 + 前端模块化

    Vue.js 组件化开发 组件化 认识组件化 注册组件 全局组件和局部组件 父子组件 组件数据 父子组件的通信 父->子:props 子->父:$emit() 父子组件的访问方式 $chi ...

  6. Thymeleaf + Vue组件化开发

    Thymeleaf 搭配 Vue 完成组件化开发 前言 一.vue2 1.引入静态文件 2.声明组件 二.语法搭配 使用vue方法调用th数据 前言 提示:thymeleaf 固然好,但是 vue 也 ...

  7. Vue.js教程-组件化开发

    Vue.js教程-组件化开发 前言 Vue组件化 什么是组件化 Vue单页面开发的解释 组件化思想 组件的使用 原理 实际开发中的使用-父子组件 父子组件传递数据 父传子-props用法 子传父-th ...

  8. [Vue.js] 深入 -- 组件化开发

    组件化开发思想 现实中的组件化思想体现 标准 分治 重用 组合 组件注册 全局组件注册语法 Vue.component(组件名称,{data:组件数据,template:组件模板内容 }) 组件用法 ...

  9. vue组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一些前期需要的技术储备进行简单 ...

  10. Vue组件化开发 - 非常详细,不要错过哦~

    源码示例链接:https://pan.baidu.com/s/1NEYDmLl2K7nNa-AKWtJqVA 提取码:2c7a 目标 能够知道组件化开发思想 能够知道组件的注册方式 能够说出组件间的数 ...

最新文章

  1. 第一章 代码无错就是优吗?(简单工厂模式)
  2. 图【数据结构F笔记】
  3. bzoj2756 [SCOI2012]奇怪的游戏 结论+网络流
  4. BIGG Digital Assets宣布再次购买60.7枚比特币
  5. Xtrabackup远程备份+限速
  6. 5G 背面:物联网的变局!
  7. 10配置php环境_macOS配置PHP环境
  8. html5 css3 JavaScript响应式中文静态网页模板js源代码
  9. OpenTracing语义标准
  10. Data Structures and Algorithms (English) - 6-8 Percolate Up and Down(20 分)
  11. illustrate插件--AI插件--印前插件--CADTools--导入库分析(一)
  12. java实训项目-模拟自动挡汽车
  13. pythonarp攻击_《python黑帽子》ARP缓存投毒python3写法(兼容Windows)
  14. 易语言C盘文件管理员权限,更改C盘文件提示需要管理员权限
  15. vue热敏打印机_vue.js实现连接打印机
  16. 石以砥利,芝士傻妞——机器人助手
  17. PbootCMS建站系统日常使用过程中常见问题汇总
  18. Android复制的实现
  19. VERICUT 9.2软件下载
  20. 【JavaScript】轻松入门

热门文章

  1. pic32mx是什么cpu_Digilent Microchip PIC32MX795F512 32位MCU开发方案
  2. Copyright 与 Copyleft
  3. 家庭机器人要爆发?看客拍手叫好,戏子才知冷暖
  4. 菜鸟、大牛和教主,三者的区别
  5. Go 文件操作(创建、打开、读、写)
  6. bzoj 2648 SJY摆棋子 cdq分治+树状数组
  7. Markdown基本语法笔记
  8. (0105)iOS开发之iOS13 暗黑模式(Dark Mode)适配
  9. linux下cppcheck用法,CppCheck介绍与使用
  10. BP神经网络以及python实现