什麼是元件: 元件的出現,就是為了拆分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 當使...