使用Vue创建一个项目的步骤

vue create xxx看路由官方文档,动态路由匹配 ,编程式导航 ,命名路由,命名视图, 重定向, 路由传参$route创建好,进入文件夹npm run serve创建一个 .prettierrc: 用来调规范格式报错{“singleQuote”: true,“semi”: false,“trailingComma”: “none”}src/assets/images用来放图片,1、图片可以直接写路径src="";2、如果图片写在JS文件里,需要在data(){return}里
摘要由CSDN通过智能技术生成

做项目前需要查看路由官方文档,动态路由匹配 ,编程式导航 ,命名路由,命名视图, 重定向, 路由传参$route,浏览器下载Vue-Devtools插件在这里插入图片描述,vuex是什么(如果你需要开发一个中大型单页应用,可以使用vuex),单向数据流view->actions->state

一、创建项目

打开控制台,
npm install -g @vue/cli --registry=https://registry.npm.taobao.org
找到项目要创建的位置
vue create 项目名
创建好,进入文件夹cd 项目名
npm run serve

创建一个 .prettierrc: 用来调节规范格式报错

   {
  "singleQuote": true,
  "semi": false,
  "trailingComma": "none"
}

引入图片的方式

在src/assets/创建一个images文件夹用来放图片,
1、可以直接写路径src="";
2、如果图片写在JS文件里,需要在data(){return}里用require引入
图片名:require(’…/assets/images/图片地址.jpg’),再在里 :src=“图片名”。此写法是因为webpack引入资源文件需要用require,使用的是file-loader加载器
但如果引入的是网络图片,可以不用require,直接写 xxx: ‘https://图片地址’
3、也可以用import xx from ‘…/assets/images/blabla.jpg’

二、自定义项目图标和标题

自定义一个项目的图标
百度搜索fav icon,在线制作一个图标,把项目图片传上去,选择图标大小,点击生成icon图标生成了一个.icon的文件,打开public,把原有的favicon替换掉,别忘记把图标名改成原有图标的图标名
自定义项目的title
找到index.html,把title改成项目标题

三、 写页面

src/views新建页面,Cart.vue, User.vue, Login.vue…
1、Login.vue:
登录按钮添加点击事件LoginHandle
// 登录成功之后把token写入本地存储

 loginHandle() {
      localStorage.setItem('token', '123')
      this.$router.push({
        name: 'User'
      })
    }

2、User.vue:
写一个退出按钮,点击事件logOut,点击之后跳转到登录页

  logOut() {
   
  localStorage.removeItem('token')
  this.$router.push({
   
    name: 'Login'
  })
}

四、写路由

router/index.js
为user、cart添加meta属性needLogin:true标记这个页面是否已登录

const routes = [
// 这里写四个(有几个页面写几个)页面的path name  component meta
 {
   
    path: '/',
    name: 'Home',
    component: Home
  },
  {
   
    path: '/cart',
    name: 'Cart',
    meta: {
   
      needLogin: true
    },
    component: () => import('../views/Cart.vue')
  },
  {
   
  ......},
  {
   
  ......}
]

路由拦截

router/index.js:
beforeEach是在所有的路由跳转之前执行,常常用来做全局拦截,to表示到哪儿去, from表示从哪儿来

router.beforeEach((to, from, next) => {

// next()表示继续执行,如果在beforeEach中不调用next就是不执行了,跳转完了就回不去了
next()

全局拦截根据写路由时给cart和user添加的meta属性needlogin判断是否登录
1.判断是否需要登录,不需要登录就next(),需要登录的话
2.判断是否已登录,登录的话,next(),未登录的话跳转到login界面

 if (to.meta.needLogin) {
   
    if (localStorage.getItem('token')) {
   
      next()
    } else {
   
   next({
   
        name: 'Login'
      })
    }
  } else {
   
    next()
  
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值