Vue學習(四)元件(參考)

2021-09-24 07:43:39 字數 3490 閱讀 2090

什麼是元件: 元件的出現,就是為了拆分vue例項的**量的,能夠讓我們以不同的元件,來劃分不同的功能模組,將來我們需要什麼樣的功能,就可以去呼叫對應的元件即可; 元件化和模組化的不同:

使用 vue.extend 配合 vue.component 方法:

var login = vue.extend();

vue.component('login', login);

複製**

直接使用 vue.component 方法:

vue.component('register', );

複製**

將模板字串,定義到script標籤種:

複製**
同時,需要使用 vue.component 來定義元件:

vue.component('account', );

複製**

注意: 元件中的dom結構,有且只能有唯一的根元素(root element)來進行包裹!

在元件中,data需要被定義為乙個方法,例如:

vue.component('account', 

},methods:

}});

複製**

在子元件中,如果將模板字串,定義到了script標籤中,那麼,要訪問子元件身上的data屬性中的值,需要使用this來訪問;

通過計數器案例演示

元件例項定義方式:

複製**
引用元件:

複製**

頁面結構:

type="button" value="toggle" @click="flag=!flag">

"flag">

"flag">

複製**

vue例項定義:

複製**
元件例項定義方式:

// 登入元件

const login = vue.extend();

vue.component('login', login);

// 註冊元件

const register = vue.extend();

vue.component('register', register);

// 建立 vue 例項,得到 viewmodel

var vm = new vue(,

methods: {}

});複製**

使用component標籤,來引用元件,並通過:is屬性來指定要載入的元件:

"#" @click.prevent="comname='login'">登入

"#" @click.prevent="comname='register'">註冊

"out-in">

"comname">

複製**

新增切換樣式:

複製**
元件例項定義方式,注意:一定要使用props屬性來定義父元件傳遞過來的資料

複製**
使用v-bind或簡化指令,將資料傳遞到子元件中:

"msg">

複製**

原理:父元件將方法的引用,傳遞到子元件內部,子元件在內部呼叫父元件傳遞過來的方法,同時把要傳送給父元件的資料,在呼叫方法的時候當作引數傳遞進去;

父元件將方法的引用傳遞給子元件,其中,getmsg是父元件中methods中定義的方法名稱,func是子元件呼叫傳遞過來方法時候的方法名稱

"getmsg">

複製**

子元件內部通過this.$emit('方法名', 要傳遞的資料)方式,來呼叫父元件中的方法,同時把資料傳遞給父元件使用

"getmsg">

複製**

目標:主要練習父子元件之間傳值

type="button" value="獲取元素內容" @click="getelement" />

"mycom">

複製**

對於單頁面應用程式來說,主要通過url中的hash(#號)來實現不同頁面之間的切換,同時,hash有乙個特點:http請求中不會包含hash相關的內容;所以,單頁面程式中的頁面跳轉主要用hash實現;

在單頁面應用程式中,這種通過hash改變來切換頁面的方式,稱作前端路由(區別於後端路由);

匯入 vue-router 元件類庫:

複製**
使用 router-link 元件來導航

"/login">登入

"/register">註冊

複製**

使用 router-view 元件來顯示匹配到的元件

複製**

建立使用vue.extend建立元件

// 4.1 使用 vue.extend 來建立登入元件

var login = vue.extend();

// 4.2 使用 vue.extend 來建立註冊元件

var register = vue.extend();

複製**

建立乙個路由 router 例項,通過 routers 屬性來定義路由匹配規則

// 5. 建立乙個路由 router 例項,通過 routers 屬性來定義路由匹配規則

var router = new vuerouter(,

]});

複製**

使用 router 屬性來使用路由規則

// 6. 建立 vue 例項,得到 viewmodel

var vm = new vue();

複製**

在規則中定義引數:

複製**

通過this.$route.params來獲取路由中的引數:

var register = vue.extend();

複製**

"/account">account

複製**

標籤**結構:

"content">

"a">

"b">

複製**

js**:

複製**
css 樣式:

複製**

Vue學習手冊(四) 元件化開發

三 父子元件通訊 3.3 子傳父事件 四 父子元件直接呼叫 五 插槽類子元件 script中呼叫 以下為父子元件的格式 單向傳值 即子元件中改變值的話,不會影響到父元件值,父元件值變動,會實時改變子元件資料 事件傳送 通常子元件向父元件傳送的是事件,父元件需要知道子元件發生了什麼事件,並做相應的反應...

React學習(四)元件

元件 上面 中,變數 hellomessage 就是乙個元件類。模板插入 時,會自動生成 hellomessage 的乙個例項 下文的 元件 都指元件類的例項 所有元件類都必須有自己的 render 方法,用於輸出元件。注意,元件類的第乙個字母必須大寫,否則會報錯,比如hellomessage不能寫...

vue學習筆記3 元件

1 元件命名 a.全小寫加連線符 vue.component my component name 當使用 kebab case 短橫線分隔命名 定義乙個元件時,你也必須在引用這個自定義元素時使用 kebab case,例如。b 駝峰式 vue.component mycomponentname 當使...