vue脚手架的安装使用/路由

19 篇文章 0 订阅

vue脚手架

基于node的环境,创建复杂vue项目的模板

1.安装

  • 首先进行 nodejs安装
  • 脚手架全局安装
    npm i -g @vue/cli
  • 检测是否安装成功
    vue -V

创建项目

  • 切换到根目录/项目需要所在目录
    cd /
  • 创建一个myvue项目
    vue create myvue
  • 创建步骤
    创建带sass插件的脚手架

sass安装

    1. 创建项目的时候安装
    1. 已经有项目了
      ----cd 项目目录
      npm i sass sass-loader -D
      npm run serve

less安装

<style lang="less">
npm i less less-loader -D
npm run serve

运行项目

  • 切换到项目目录
    cd myvue
  • 运行项目
    npm run serve

什么时候用props

  • 当数据不需要修改,且需要从父组件获取

什么时候用data

  • 当数据需要修改的时候
  • 能用props解决就用props

vue路由

单词

  • Router 路由
    path 路径
    meta 元信息
    component 组件
    beforeEach 离开每一个

SPA

  • singlePageApplication一个网站的所有一碗面都集成在一个html文件里面,通过切换div模拟页面的切换

优点

  • 资源共用
  • 前后端分离
  • 页面切换流畅

缺点

  • 对SEO搜索引擎不友好

原理

  • 地址改变
  • 不刷新页面
  • 监听地址栏变化实现页面局部更新

Hash路由

  • 锚点(hash)变化不会刷新页面
    window.onhashchange

历史记录路由

  • H5 新增特性
    history.onpopstate

内置组件App.vue

  • 改变地址栏,改变hash值的
    router-link
  • 存放页面
    router-view

路由配置

/router/index.js里配置
{ path:"/", //配置的地址 component:HomeView //配置的页面组件 }

普通配置

{path:"/user", name:"user", component:()=>import(xxx) }

传参配置

{ path:"/produce/:id", name:"", component:()=>import(xxx) }

子路由配置

{
path:"/admin",
 name:"admin",
 component:()=>import(xxx)
 children:[
   {path:"dash",component:yyy},
   {path:"dash",component:zzz},
   //重定向
   {path:'',redirect:'dash'}
  ]
  }

404配置

  • 1. 配置在最后面
  • 2. path值为*
    { path:"*", component:NoMatch }

路由的别名

{ path:"/", alias:["/index","/main"] }

$route当前路由信息

  • name 名称
  • params 路由参数
  • path 路径
  • fullPath全路径
  • query查询参数
  • hash哈希
  • meta 元信息

路由组件

  • 切换路由
    router-link

  • to属性改变地址栏
    to="/user"
    :to="'/user'"
    :to="{name:'user',params:{},query:{}}"
    :to="{path:''/produce/123'}"

  • router-view存放路由

  • router-link to 跳转

编程跳转$router

.push("/") 跳转并添加一个历史记录
.replace("/") 跳转替换(不留当前历史记录
.back() 返回
.forward() 前进
.go(-1) 返回一步
.go(1) 前进一步

导航守卫

  • 组件内部
    • 进入前 (特别强调,没有this)
      beforeRouteEnter(to,from,next){}
    • 更新前
      beforeRouteUpdate(to,from,next){}
      produce/abc =>produce/123
    • 离开前
      beforeRouteLeave(to,from,next){}
  • 路由独享
    beforeEnter
  • 全局守卫
    • 全局前置守卫
      router.beforeEach((to,from,next)=>{ })
      有next ,next必须被执行
    • 全局后置守卫
      router.afterEach((to,from)=>{ })

plugin弹框插件

  • 1.插件是一个对象,必须实现install办法
  • 2.插件需要在vue文件中使用vue.use(插件)
  • 3.插件方法
    vue.extend(.vue文件) //继承.vue文件的构造函数
    instance.$mount(dom) //手动挂载
    instance.$el //实例的真实dom
    Vue.protoytpe.$toast = Toast //将插件挂载到全局的((所有组件的实例都将拥有插件的方法和属性)

Notify 通知插件

  • js //保存一致
  • .vue
    template ==> <div class="notify">ffmsgl</div>
    js
  • data
    msg通知的内容
    color文本的颜色
    bgColor背景颜色
  • methods
    success(msg) //成功提示
    warn(msg) //警告
    danger(msg) //危险警告
    show(msg,bgColor,color) //显示
    hide() //隐藏

解决跨域问题

什么是跨域

  • localhost域名去访问m.mi.com的数据,域名不同出现跨域错误
  • 跨跨域是浏览器的安全机制同源策略(只有浏览器有)(hbuilder的内置浏览器没有跨域限制)

同源策略

  • 要求请求的地址与当前地址必需同源
  • http://m.baidu.com:999/list/my.html?
  • name=mumu&age=18#good
  • 协议一致:http 、 https、 file 、ftp
  • 域名一致baidu.com
  • 子域名一致m.baidu、 pan.baidu
  • 端口号:888:8080
  • http默认端口号80
  • https默认端口号443

实现跨域

  • jsonp跨域
  • script的src没有同源限制CORS响应头允许
  • CORS响应头允许–服务器响应头允许–响应标头Access-Control-Allow-Origin:
  • 代理localhost请求m.mi.coml
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值