您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎么深入了解Vue組件的創建和使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
組件 (Component) 是 Vue.js 最強大的功能之一。組件可以擴展 HTML 元素,封裝可重用的代碼。在較高層面上,組件是自定義元素,Vue.js 的編譯器為它添加特殊功能。
var com1 = Vue.extend({ // 通過 template 屬性,指定了組件要展示的HTML結構 template: '<h4>這是使用 Vue.extend 創建的組件</h4>' })
Vue.component(‘組件的名稱', 創建出來的組件模板對象) 注冊組件
Vue.component('myCom1', com1)
注意:如果使用Vue.Component 注冊全局組件的時候,組件的名稱使用了駝峰命名,則在引用組件的時候需要把大寫的駝峰改為小寫的字母,同時,兩個單詞之前,使用 “–” 鏈接。如果不使用則直接拿名稱來使用即可。
Vue.component('mycom2', { template: '<div><h4>這是直接使用 Vue.component 創建出來的組件</h4> <span>123</span></div>' })
示例:
1、被控制的 #app 外面,使用 template 元素,定義組件的HTML模板結構。
<template id="tmpl"> <div> <h2>這是通過 template 元素,在外部定義的組件結構</h2> <h5>好用,不錯!</h5> </div> </template>
2、使用id注冊組件
Vue.component('mycom3', { template: '#tmpl' })
局部組件的創建和全局組件的創建方法一樣。唯一區別的是,局部組件是在Vue實例中定義的。
1、組件可以擁有自己的數據。
2、組件中的data 和實例中的data 有點不一樣,實例中的data 可以為一個對象。但是組件中的data必須是一個方法。
3、組件中的data除了是一個方法,還必須返回一個對象。
4、組件中的data 的使用方式和 實例中的data 使用方式一樣。(methods也一樣)
父組件A通過props的方式向子組件B傳遞,B to A 通過在 B 組件中 $emit, A 組件中 v-on 的方式實現。
子組件:
<template> <div class="hello"> <ul> <li v-for="(user,index) in users" v-bind:key="index">{{ user }}</li> </ul> </div> </template> <script> export default { name: "users", props: { users: { //父組件中子標簽自定義的名字 type: Array, require: true } } } </script> <style scoped> li{ list-style-position: inside; } </style>
父組件:
<template> <div id="app"> <img alt="Vue logo" src="./assets/logo.png"> <Users v-bind:users="users"> </Users> </div> </template> <script> import Users from "@/components/users"; export default { name: 'App', data(){ return { users: ['西安郵電','西安石油','西北政法','西安工業','西安財經'] } }, components: { Users, } } </script>
子組件:
<template> <header> <h2 @click="changeTitle">{{ title }}</h2> </header> </template> <script> export default { name: "Son", data(){ return { title: 'Vue.js Demo' } }, methods: { changeTitle(){ this.$emit('titleChanged','西安郵電大學'); } } } </script> <style scoped> h2{ background-color: greenyellow; } </style>
父組件:
<template> <div id="app"> <Son v-on:titleChanged="updateTitle"></Son> <h3>{{ title }}</h3> </div> </template> <script> import Son from "@/components/Son"; export default { name: "Father", data(){ return { title: '傳遞的是一個值' } }, methods: { updateTitle(e){ this.title = e } }, components:{ Son, } } </script>
子組件通過events(事件)給父組件發送消息,實際上就是子組件把自己的數據發送到父組件。
看完上述內容,你們對怎么深入了解Vue組件的創建和使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。