电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

基于Vue全局組件與局部組件的區別說明

瀏覽:77日期:2022-12-10 17:54:38

1、組件聲明

<!-- 全局組件模板father模板 --><template id='father'> <div> <h3>這是{{name}}</h1> <div> <p>這是{{data}}</p> </div> </div></template>var FATHER = { template: '#father', data: function() { return { name: '一個全局組件-模板-', data: '數據:18892087118' } } };

2、組件注冊

Vue.component(’father’, FATHER);

3、組件掛載

<h5>全局組件1</h5>

<father></father>

4、組件實例

<!DOCTYPE html><html><head> <title>vue2.0 --- 局部組件與全局組件</title></head> <body> <h3>vue2.0局部組件與全局組件</h3> <div id=’app’> <h5>局部組件</h5> <fatherlocal></fatherlocal> <hr> <h5>全局組件1</h5> <father></father> <hr> <h5>全局組件2</h5> <child :fromfather=’giveData’></child> </div> <!-- 局部組件模板fatherlocal --> <template id='father-local'> <div> <h3>這是{{name}}</h1> <div><p>這是{{data}}</p> </div> </div> </template> <!-- 全局組件模板father --> <template id='father'> <div> <h3>這是{{name}}</h1> <div><p>這是{{data}}</p> </div> </div> </template> <template id='child'> <div> <h3>這是{{name}}</h3> <div><p>{{cmsgtwo}}</p><p>{{cmsg}}</p><p>{{fromfather}}</p><p>{{fromfather.fmsg}}</p><p><input type='button' value='按鈕' @click=' '></p> </div> </div> </template> <script src='http://www.hdgsjgj.cn/bcjs/vue_2.2.2_vue.min.js'></script> <script type='text/javascript'> // 定義組件 var FATHER = { template: '#father', data: function() {return { name: '一個全局組件-模板-', data: '數據:18892087118'} } }; var CHILD = { template: '#child', data: function() {return { name: '子組件', cmsg: '子組件里的第一個數據', cmsgtwo: '子組件里的第二個數據'} }, methods: {change: function() { this.fromfather.fmsg = '子組件數據被更改了'} }, mounted: function() {this.cmsg = this.fromfather; }, props: ['fromfather'], }; // 注冊組件 Vue.component(’father’, FATHER); Vue.component('child', CHILD); var vm = new Vue({ data: {fmsg: 'data里的數據',giveData: { fmsg: '這是父組件里的數據'} }, methods: {}, // 局部組件fatherlocal components: {’fatherlocal’: { template: ’#father-local’, data: function() { return { name: '局部-父組件', data: '局部-父組件里的數據' } }} } }).$mount(’#app’); </script></body></html>

6、特殊的屬性is

當使用 DOM 作為模板時 (例如,將el選項掛載到一個已存在的元素上),你會受到 HTML 的一些限制,因為 Vue 只有在瀏覽器解析和標準化 HTML 后才能獲取模板內容。尤其像這些元素<ul>,<ol>,<table>,<select>限制了能被它包裹的元素,而一些像<option>這樣的元素只能出現在某些其它元素內部。

自定義組件<my-row>被認為是無效的內容,因此在渲染的時候會導致錯誤。變通的方案是使用特殊的is屬性:

<body> <div id='app1'> <ul><li is='my-component'></li> </ul> </div> <script> Vue.component('my-component',{template:'<h1>{{message}}</h1>',data:function(){ return { message:'hello world' }} }); new Vue({el:'#app1' }) </script> </body>

補充知識:Vue組件之入門:全局組件三種定義

不論我們使用哪種方式創建出來的組件,組件中的template屬性指向的模板內容中,必須有且只有一個根元素,其他元素必須在這個根元素下面。

1.使用Vue.extend配合Vue.component定義全局組件

在使用Vue.extend配合Vue.component定義全局組件時,Vue.extend里面定義template模板,而Vue.component里面是要注冊一個組件。

<body><div id='app'> <!--第三步頁面中使用 --> <!-- 如果要使用組件,直接把組件的名稱以HTML標簽的形式引入到頁面中--> <my-compnent></my-compnent></div><script> //第一步:使用Vue.extend來創建全局組件 var com1 = Vue.extend({ //通過template模板的屬性來展示組件要顯示的html template: ’<h2>使用Vue.extend創建全局組件</h2>’ }); //第二步:使用 Vue.component(’組件名稱’,創建出來的組件模板對象) Vue.component(’myCompnent’, com1); // 創建 Vue 實例,得到 ViewModel var vm = new Vue({ el: ’#app’, data: {}, methods: {} });</script></body>

【注意】在定義注冊組件時,組件的名稱不需要按照駝峰命名,但是在頁面引入組件時,組件的名稱必須按照駝峰命名。

基于Vue全局組件與局部組件的區別說明

簡寫如下:

基于Vue全局組件與局部組件的區別說明

2.直接使用Vue.component定義全局組件

這里是直接使用Vue.component直接創建一個組件

<div id='app'> <my-com2></my-com2></div><script> Vue.component(’myCom2’, { template: ’<h2>直接使用Vue.component創建組件</h2>’ }); // 創建 Vue 實例,得到 ViewModel var vm = new Vue({ el: ’#app’, data: {}, methods: {} });</script>

3.Vue外部直接定義template

<body><div id='app'> <my-com3></my-com3></div><template id='tmp1'> <div> <h2>這是通過template元素,在外部定義組件的結構,有代碼的提示和高亮</h2> </div></template><script> Vue.component(’myCom3’, { template: '#tmp1' }); var vm = new Vue({ el: ’#app’, data: {}, methods: {} });</script></body>

基于Vue全局組件與局部組件的區別說明

以上這篇基于Vue全局組件與局部組件的區別說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 全自动固相萃取仪_高通量真空平行浓缩仪-勤业永为 | 一航网络-软件测评官网 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 电动葫芦-河北悍象起重机械有限公司| 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 「银杏树」银杏树行情价格_银杏树种植_山东程锦园林 | 威客电竞(vk·game)·电子竞技赛事官网 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 阻燃剂-氢氧化镁-氢氧化铝-沥青阻燃剂-合肥皖燃新材料 | 武汉高低温试验箱_恒温恒湿试验箱厂家-武汉蓝锐环境科技有限公司 | 济南冷库安装-山东冷库设计|建造|冷库维修-山东齐雪制冷设备有限公司 | 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 数字展示在线_数字展示行业门户网站 | 河南中整光饰机械有限公司-抛光机,去毛刺抛光机,精密镜面抛光机,全自动抛光机械设备 | 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 塑钢课桌椅、学生课桌椅、课桌椅厂家-学仕教育设备首页 | 巨野月嫂-家政公司-巨野县红墙安康母婴护理中心 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 生物制药洁净车间-GMP车间净化工程-食品净化厂房-杭州波涛净化设备工程有限公司 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 暴风影音| 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 浙江富广阀门有限公司 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 |