文章目录
- vue
- 一、js基础
- 二、封装缓存
- 三、组件
- 1、组件创建、引入、挂载、使用
- 2、组件间的传值
- - 父组件主动获取子组件的数据和方法(子组件给父组件传值):
- - 子组件主动获取父组件的数据和方法(父组件给子组件传值):
- -非父子组件间的传值
- 广播方式
- Vuex方式 -- 解决(不同页面)组件间数据共享
- 四、生命周期(钩子)函数
- 五、请求数据的三种方式
- 1、vue-resource
- 2、Axios
- 3、fetch-jsonp
- 4、tips
- 六、路由(自动挂载组件以及加载数据)
- 1、配置路由
- 2、实际使用
- 1、配置
- 2、 ‘/’ 路由出口(放在根组件):
- 3、router-link 路由出口(类似a标签):
- 4、Js编程式路由(编程式导航):由js代码主动发起路由
- 5、vue路由的hash模式(默认,有#)和history模式(无#)
- 6、路由的嵌套
- 3、路由传参
- 4、路由模块化
vue
-
每一个组件都是一个页面(html/template+js+css/scss),实现组件的完整性——组件化
-
main.js入口文件,在这里可以引入用到的node_modules包(模块)以及插件,即用即导入——模块化
-
App.vue 根组件(根页面),
-
meta viewport 移动端窗口(视口),可以使用百度界面的meta标签的 viewport属性
-
若在全局样式有 html{font-size:62.5%} —— 将字体变为0.625倍,为了适合移动端,则此时的 1rem 就 相当于电脑的 1px !
-
创建项目:
第一次安装脚手架:
cnpm install -g vue-cli (安装vue cli2脚手架)
vue init webpack demo1 (vue init webpack-simple demo1)
npm run dev
npm run build
OR
cnpm install -g @vue/cli (安装vue cli3脚手架)
vue create demo1
运行:npm run serve (运行速度比2快了许多)
编译:npm run build -
vue cli3 提供了GUI界面来创建(管理)项目:
vue ui
然后进入locallhost:8080
一、js基础
二、封装缓存
1、直接使用:
2、封装后使用:
三、组件
组件挂载。页面由组件组成。路由:动态挂载组件。创建组件,开头大写,组件=template+js+scss,所有内容要被根节点包含起来,组件必须包含根元素(一般是div)。自定义标签名不能重复。
1、组件创建、引入、挂载、使用
2、组件间的传值
组件间的传值,可以是变量(地址),也可以是对象(函数–地址),还可以是整个组件(类–地址)!
- 父组件主动获取子组件的数据和方法(子组件给父组件传值):
父组件主动获取子组件的数据和方法:
- 子组件主动获取父组件的数据和方法(父组件给子组件传值):
子组件主动获取父组件的数据和方法:
父组件给子组件传值:
例子: 无论是传变量、函数还是组件,父组件传值方式都是动态属性绑定,子组件接收方式有两种,一种props数组形式接收——props:[],一种props对象形式接收,对象形式接收可以验证父组件传值的合法性!
父组件传变量:
子组件props数组接收变量:
子组件props对象接收变量并验证,验证不通过则会出现警告:
-非父子组件间的传值
广播方式
例子:
Vuex方式 – 解决(不同页面)组件间数据共享
Vuex是vue官方提供的状态管理插件,解决(不同页面)组件间同一状态的数据共享问题和组件的数据持久化。
也可以通过localstorage(缓存)实现,也可以使用SessionStorage实现!
注:小项目中,能不用Vuex就不用。
1、数据共享
2、数据持久化
直观体现:在控制台的network中,多次请求数据时,如果用缓存则会多次请求,若用Vuex则可以达到一次请求,多次使用(并且动态改变、共享)。
四、生命周期(钩子)函数
五、请求数据的三种方式
1、vue-resource
2、Axios
3、fetch-jsonp
4、tips
- Axios不支持jsonp请求。而fetch-jsonp可以支持,可以在vue、react中使用,fetch-jsonp用法和Axios很像。
- vue-resource是vue的官方插件,在man.js引入并使用后,全局组件都可以直接使用,这是一个被推荐的重要原因;而Axios则是在哪里需要在哪引入,Axios可以在vue、react中使用。
- 要用箭头函数替代function,避免指向被改变。
- 安装依赖包时一定要加 --save,这样会在package.json中声明版本,下次install才能被找到。
- vue-resource、Axios、fetch-jsonp都可以在git上找到源码和安装使用方法
六、路由(自动挂载组件以及加载数据)
1、配置路由
补充:第五步:设置路由出口(即在哪个作用域下渲染这些路由下的组件)
2、实际使用
1、配置
2、 ‘/’ 路由出口(放在根组件):
3、router-link 路由出口(类似a标签):
4、Js编程式路由(编程式导航):由js代码主动发起路由
其实 点击 router-link组件,内部调用的也是 router.push()方法
5、vue路由的hash模式(默认,有#)和history模式(无#)
6、路由的嵌套
3、路由传参
get传参
post传参
4、路由模块化
路由模块化 —— 单独开一个js文件放路由配置,然后export暴露,在main.js中引入并挂载