React创建组件的三种方式及其区别
React推出后,出于不同的原因先后出现三种定义react组件的方式:
- 函数式定义的
无状态组件 - es5原生方式
React.createClass定义的组件 - es6形式的
extends React.Component定义的组件
路由,其实就是指向的意思,也是一种映射
(1)下载安装相关的路由管理器 vue-router
(2)定义路由并配置路由,即编写根组件和路由组件(简单可以理解一个组件就是一个页面)
(3)创建路由器模块
(4)配置路由器
watch监视路由地址的改变
<body>
<div id="app">
<router-link to="/login">登录</router-link>
<router-link to="/login">注册</router-link>
<!-- 容器 -->
<router-view></router-view>
</div>
<script>
//2:创建子组件
var login={
template:'<h3>这是登录子组件,这个组件是 奔波霸 开发的。</h3>'
}
var register={
template:'<h3>这是注册子组件,这个组件是 霸波奔 开发的。</h3>'
}
//3:创建一个路由对象
var router=new VueRouter({
routes:[ //路由规则数组
{path:'/',redirect:'/login'},
{path:'.login',component:login},
{path:'/register',component:register}
],
linkActiveClass:'myactive' //和激活相关的类
})
var vm=new Vue({
el:'#app',
data:{},
methods:{},
//router:routre
router,
watch: {
// this.$route.path
'$route.path': function (newVal, oldVal) {
// console.log(newVal + ' --- ' + oldVal)
if (newVal === '/login') {
console.log('欢迎进入登录页面')
} else if (newVal === '/register') {
console.log('欢迎进入注册页面')
}
}
}
});
</script>
</body>