Vue2 基础

  1. 了解ESLint 

Eslint是一个代码编写风格规范 可组装javascript和jsx检查工具    约束代码风格

 在使用eslint时vue会多出一个eslintrc.js配置文件

eslintrc.js中的rules规则:

  • no-console 在开发时不会发出警告,在发布时会发出警告
  • no-debugger 调试

 

 


初步语法规则:

  • 文件最后必须有一个空行
  • 不可以有连续的空行
  • 在每一行后面不可以用多余的空格


  • 在默认情况下 字符串使用单引号‘’  quote
  • 在属性与属性值之间默认有一个空格  key-spacing
  • 不可在属性最后多一个逗号
  • 在注释中//和/*后使用一致的间距
  • import必须放到js顶部
  • 定义未使用过的变量和常量也会报错
  • 在方法形参之间要加空格

禁用规则:


2.axios使用基本用法及配置

##1.先下载   npm  i axios -S
##2.导入   import axios from 'axios'
##事件触发 
##   async 方法名(){                                                     
    const {data:res} await  axios.get('url')
         console.log(res)
}
//axios在使用时 可以通过对象解构将获取的data重名为res
// await 要与async一起使用

-----------------------------------------------------------------------------------------------------------------------------
axios使用方便语法使用:

在main.js中挂载一个共享的成员

  1. 在main.js  中 引入 axios          impor  axios from 'axios'
  2. 挂载                                        vue.prototype.$http=axios
  3. 在其他组件就可以不导入axios直接在语句中使用this     
    //在其他组件中可以不再导入axios
     async postInfo() {
    
          const { data: res } = await this.axios.post('http://liulongbin.top:3006/api/post')
    
          console.log(res)
    
        }

    后期维护解决: 全局配置axios请求根路径,将axios挂载到Vue.prototype上供每个组件使用

import axios from 'axios'

axios.defaults.baseURL="请求根目录"             ----全局配置请求根目录

Vue.prototype.$http=axios                    ----使用axios时直接this调用 this.$http.get/post

//请求路径为
async getInfo()
{
   const{data:res}=awit this.$http.get('/api/get')  

    //原路径'http://liulongbin.top:3006/api/get'
}



//缺点 不利于api接口的复用,如果多个组件同时访问接口时,需要重复书写接口请求,有很大的冗余,无法复用


3.前端路由

前端路由:--------------------------- 不同的hash代表不同的路由
hash地址与组件的关系

#开始往后都是hash地址
location.href 整个url页面
location.hash 获取url地址里#往后的地址


路由工作方式:
1.用户点击网页上的路由链接
2.导致了url地址栏中hash值发生变化
3.前端路由监听到hash地址变化
4.前端路由把当前hash地址对应的组件渲染到浏览器中

vue-router的基本使用----------------------路由都是通过第三方库

安装配置
安装vue-router包
创建路由模块
导入并挂载路由模块
声明路由器和占位符  

通过window.onhashchange 来进行监听hash地址的改变,可以通过location.hash获取#hash地址

 

路由基本用法:

//--------------------------路由模块使用----------------------------------------------

//在App.vue 主组件中

1)创建三个路由链接

<a href='#/home'>首页</href>
<a href='#/about'>关于</href>
<a href='#/movie'>电影</href>

2)在组件中使用
<router-view></router-view>    ---作为一个占位符   在安装和配置vue-router就可以使用


路由模块中的index.js中


1)导入需要使用到的组件   
import Home from '@/components/Home.vue'
import About from '@/components/About.vue'                 
import Movie from '@/components/Movie.vue'                                  

2)在 const router=new vueRouter(                //创建一个实例路由对象
{  
--------routes为一个数组,存放hash与组件的对应关系,最后将对应组件渲染到router-view占位符中
routes;[
        {path:'/home',component:Home},   //在此path不需要加#
        {path:'/movie',component:Movie},
        {path:'/about',component:About}
]
}


);
     

js穿插:

 //自动滚动到最下方

        /*  srollTop:内容偏移量距离顶部的距离

          scrollHeight:可以滚动的最大高度 */

          box.scrollTop = box.scrollHeight

环信       聊天室第三方工具


利用router-link替代a链接    ---前提安装了vue-router

redirect重定向 -----给用户强制转换访问地址,指定一个新的路由地址


//重定向 redirect


//创建路由对象
const router=new VueRouter(
  {
    //  routes是一个数组   定义hash与组件的对应关系
    routes:[
      //重定向路由规则
      {path:'/',redirect:'/movie'},
      {path:'/home',component:Home},
      {path:'/movie',component:Movie},
      {path:'/about',component:About},
    ]

  }
)

嵌套路由:

子嵌套,在父类组件中 放好链接,

<router-link to='/about/tab1'></router-link>

<router-link to='/about/tab2'></router-link>

放好占位符-----最终数据所放的位置

<router-view></router-view>

在路由中进行子路由规则

导入两个子路由  之后与父组件平级

//创建路由对象
const router=new VueRouter(
  {
    //  routes是一个数组   定义hash与组件的对应关系
    routes:[
      //重定向路由规则
      {path:'/',redirect:'/movie'},
      {path:'/home',component:Home},
      {path:'/movie',component:Movie},
      {path:'/about',component:About,
redirect:'/about/tab1'//重定向


children:[

{path:'tab1',component:'Tab1'},     //在子路由规则中可以省略前面 /

{path:'tab1',component:'Tab2'}

]

},
    ]

  }
)

默认子路由: 如果在children数组中,某个路由的规则的path为空,则这条路由规则为默认子路由

在访问时会自动显示出这个子路由

路由链接 router-link 的地址要和path中的地址匹配


vue-router/路由链接常见用法

1.动态路由匹配:    通过id访问

将hash地址部分可变部分作为参数项,提高路由规则复用性

在vue-router中使用英文冒号 :定义路由参数项,就好比是node中单个参数的    params  /about/:id



第一种拿动态参数方式:
path:'/about/:id',  component:'Movie'   //使用冒号  将公共不分作为动态
 
this.$route 为 路由的参数对象   //获取  :id值 通过 this.$route.params.id可用获取,this可以省略
this.$router 为路由的导航   


第二种方式为通过props获取  props:[]数组形式

在路由规则中可以通过props:true开启props传参,方便组件拿到动态的值
哪个组件上开启哪个组件才可以通过props:[]来获取

1)//在路由规则中开启props,可以使当前组件获取动态的值
   {path:'/movie/:id',component:Movie,props:true},
2) props: ['id'], //在此接收动态值  id
3)  <h3>Movie 组件-----{{this.$route.params.id}}----{{id}}</h3>


拓展:query和fullpath
1)在hash地址中 /后面的参数值为路径参数
2)“路由参数”对象中使用 this.$route.params来获取
3)hash地址中 ?后面的参数为查询字符  通过this.$route.query
4)this.$route.fullpath显示的是完整路径包括后面的参数   this.$route.path只获取路径部分不包括?后面的字符

链式导航和编程式导航

编程导航: 三种

this.$router.push('地址')      --追加导航,不会覆盖

this.$router.replace('地址‘)   ---将当前的进行替换

this.$router.go(-1)    整数表示向前,负数表示后退

简写   $router.back() /  $router.forward()

导航守卫

访问文件需要通过导航守卫权限

//为了router实例对象,声明全局前置导航守卫
//只要发生了路由的跳转,必然会触发beforeEach指定的回调函数
router.beforeEach(function(to,from,next){
  //to表示将要访问的路由信息对象
  //from表示将要离开的路由信息对象
  
  next();
  //放行


next()//放行
next(地址) //强制转换
next(fales) 
})


头条案例中

views和commponse 文件夹区别

views存放的是经过路由切换的组件

commponent 存放的是不通过路由切换的

vue组件库:vant

# Vue 3 项目,安装最新版 Vant npm i vant

# Vue 2 项目,安装 Vant 2 npm i vant@latest-v2

导入:

import { createApp } from 'vue';

import Vant from 'vant';

import 'vant/lib/index.css';

const app = createApp();

app.use(Vant);


三步骤实现路由切换,

1.在app组件中引入vant库组件 以路由器用法      vrouter-link to类似

2.在app组件使用  router-view 占位符, 将路由规则中相应的路由组件渲染至占位符中

3.在index.js路由模块中 进行设置路由规则,

/deep/       覆盖第三方组件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值