接触了两种框架,这里大致做一下对比和总结
一、数据的流向
1.vue-双向绑定
符号表示类似于 <=>
2.react-单向流程
抽象表示类似于 环保符号
二、关键点对比
1.vue
- 使用的脚手架 vue-cli
https://cli.vuejs.org/zh/guide/cli-service.html - pc端elm-ui
https://element.eleme.cn/#/zh-CN - 移动端 mint-ui
https://mint-ui.github.io/docs/#/zh-cn2 - 组件格式 xxx.vue
// 视图路由,没有的话视图看不到,也就是显示不了
HTML div相当于body 所以只能有一个最外层的div(标签)
调用组件需要导入并声明
import Demo from './Demo'
components: {
组建名
Demo
}
然后才可以在html里使用
- 路由配置 router
https://www.jianshu.com/p/89cb6a570eed
import Vue from 'vue';
import Router from 'vue-router';
// 使用Router
Vue.use(Router);
// 配置路由
const routerList =[
{
path: '/order',
meta: {
title: '订单',
},
component: () => import('@/views/order/index'),
redirect: '/order/list',
// 子路由
children: [
{
path: 'list/:id',
// 动态路由传参
meta: {
title: "电影订单",
},
component: () => import('@/views/order/children/list'),
},
{
path: 'xiangqing',
meta: {
title: "订单详情",
},
component: () => import('@/views/order/children/xiangqing'),
}
]
},
]
const router = new Router({
routes:routerList
})
export default router;
- 页面跳转
动态路由传参:
编辑
对应路由设置为:
path: 'edit/:id'
获取传的参数:
this.$route.params.id
通过点击事件跳转,点击事件调用this.$router.push跳转
this.$router.push('/路径')
router.push传参
this.$router.push({path:'路径',query:{参数名:参数值}})
获取参数
this.$route.query.参数名
详情请看https://www.jianshu.com/p/89cb6a570eed
- 父子通讯
https://www.jianshu.com/p/b012e8166c2a
a组件调用b组件,a就是b的父组件,b就是a的子组件
父传子 父通过子的props属性传参数
父
子 访问父传过来的数据直接可以this.name访问
子传父 子使用$emit带参调用父的自定义事件
父
methods:{b(data){console.log(data)}}
子
methods: {
submit() {
// 也可以通过点击事件来触发
this.$emit("getUsername", this.username);
}
}
- vuex
详情 https://www.jianshu.com/p/3abaa8c4c6e3
详情 https://www.jianshu.com/p/87f040e3f87b
store => vuex文件名
state => 存放状态(数据)
mutation => 定义修改数据的方法,mutation 必须是同步函数
action => 派发,用于调用mutation里的方法,通过commit 进一步处理方法
module => 分模块管理,便于管理
getters => 设置获取数据的快捷方式
- 请求数据(传参)
使用axios,使用方法下列链接
https://www.npmjs.com/package/axios
axios.get(url,{
params:{
cinemaId:id
}
}).then( res => {
console.log(res)
}).catch( error => {
console.log(error)
})
promis封装 https://www.jianshu.com/p/d51a161958e5
基础使用 https://www.jianshu.com/p/fa50fbd963c3
- 语法
data() {
return {
数据放这里
}
}
获取数据this.变量名
修改数据值this.变量名 = 值
获取直接this,修改直接赋值
命令
渲染 v-for v-for((item,index) in list) :key="index"
条件渲染 v-if v-if="true"
显示 v-show v-show="true"
v-bind 缩写 : 动态值,函数前加
v-on 事件 缩写 @
v-model 双向绑定,用于有vlaue值的标签
插值表达式 {{ data}} 通过插值表达式把值放进html标签里
- 组件的生命周期