2.26-3.6

2.26

下面是项目vue脚手架
在这里插入图片描述
下面是node环境文件夹
在这里插入图片描述

2.27

npm config get prefix
npm config set prefix "D:\software\nodejs"

得到下面
在这里插入图片描述
创建脚手架

npm i @vue/cli -g

在项目脚手架里

vue create vue-project-1
where npx vue

使用vue cli创建前端工程

在这里插入图片描述
https://registry.taobao.org/过期了换成https://registry.npmjs.org/
在这里插入图片描述

npx vue ui

运行package.json中定义的serve脚本
在这里插入图片描述
在vue.config.js中加入devServer:{port: 7070},改变端口号
在这里插入图片描述

2.28

前端vue

vue的<template></template>是页面模型,<script></script>是逻辑,<style></style>是样式
属性绑定动态
v-bind:value=“name”
:value="age“
:src=“src”
script这么写
methods这么写

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  data() {
    return {
      name:'张三',
      age:70,
      src:'https://ebui-cdn.bj.bcebos.com/yiyan-logo.png'sex:1
    }
  },
  methods:{
    handleSave(){
      alert('点击了保存按钮')
    },
    handleChange(){
      this.name='李四'
    },
    handleSendPOST(){
      axios.post('/api/admin/employee/login',{
        username:'admin',
        password:'123456'
      }).then(res=>{
        console.log(res.data)
      }).catch(err=>{
        console.log(err.response)
      })
    },
    handleSendGET(){
      axios.get('/api/admin/shop/status',{
        headers:{
          token:'eyJhbGciOiJIUzI1NiJ9.eyJlbXBJZCI6MSwiZXhwIjoxNzA5MTEwOTIxfQ.Xpkg9aKIm_aKhrNJyRJlBLserdAD6EDKdZfBPBI2Xhw'
        }
      }).then(res=>{
        console.log(res.data)
      })
    },
    handleSend(){
      axios({
        method:'post',
        url:'/api/admin/employee/login',
        // data是请求体,params是路径后的参数
        data:{
          username:'admin',
          password:'123456'
        }
      }).then(res=>{
        console.log(res.data.data.token)
        axios({
          method:'get',
          url:'/api/admin/shop/status',
          headers:{
            token:res.data.data.token
          }
        })
      })
    }
  }
}
</script>

事件绑定

<template>
  <div class="hello">
    {{ name }}
    {{ age>60?'老年':'青年' }}
    <input type="text" v-bind:value="name">
    <input type="text" :value="age">
    <img :src="src">
    <input type="button" v-on:click="handleSave" value="保存">
    <input type="button" @click="handleSave" value="保存">
    <!-- 双向数据绑定 -->
    <input type="text" v-model="name">
    <!-- 条件渲染 -->
    <div v-if="sex==1"></div>
    <div v-else-if="sex==2"></div>
    <div v-else>
      未知
    </div>
  </div>
  <input type="button" value="发送请求" v-on:click="handleSend">
  <input type="button" value="发送get请求" @click="handleSendGET"> 
  <input type="button" value="统一请求方式" @click="handleSend">
  </div>
</template>

vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer:{
    port: 7070,
    proxy:{
      '/api':{
        target:'http://localhost:8080',
        pathRewrite:{
          '^/api':''
        }
      }
    }
  }
  
})

axios网络请求库
在项目文件夹下安装axios
在这里插入图片描述

npm install axios

安装axios后package.json的依赖就会有axios
vue实现路由
通过vue-router实现路由功能,需要安装js库 npm install vue-router
index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import HomeView from '../views/HomeView.vue'

Vue.use(VueRouter)

//维护路由表,某个路由路径对应哪个视图组件
const routes = [
  {
    path: '/',
    name: 'home',
    component: HomeView
  },
  {
    path: '/about',
    name: 'about',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  },
  {
    path: '/404',
    name: 'about',
    component: () => import('../views/404View.vue')
  },
  {
    path:'*',
    redirect:'/404'
  }
]

const router = new VueRouter({
  routes
})

export default router

index.js是路由路径和路由组件的对应,App.vue的<router-link>是超链接,App.vue的<router-view/>是占位
App.vue

<template>
  <div id="app">
    <nav>
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>
      <input type="button" value="编程式路由跳转" @click="jump">
    </nav>
    <!-- 不同的视图组件展示的位置 -->
    <router-view/>
  </div>
</template>

<script>
export default{
  methods:{
    jump(){
      //编程式路由跳转
      this.$router.push('/about')
    }
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

nav {
  padding: 30px;
}

nav a {
  font-weight: bold;
  color: #2c3e50;
}

nav a.router-link-exact-active {
  color: #42b983;
}
</style>


重定向会改变浏览器地址,转发不会,转发会隐藏新的路径,显示的还是原来的路径
安装element-ui

npm i element-ui -S

main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.config.productionTip = false

//全局使用ElementUI
Vue.use(ElementUI);

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

2.29

在ContainerView.vue安装vetur和vue language features插件后<vue>得到模板在这里插入图片描述
ContainerView.vue的缩进要对,否则无效
每个vue文件都要保存
安装vuex

npm install vuex@next --save

安装ts

npm install -g typescript

查看ts版本

npx tsc -v

使用ts
hello.ts

function hello(msg:string){
	console.log(msg)
}

hello('123')

在这里插入图片描述

3.1

npm install,在项目路径下安装依赖
tsc TSDemo1.ts,编译ts文件
node .\TSDemo1.js
npm缓存

3.2

在这里插入图片描述
npm get
用户配置>全局配置>内置配置
在项目目录下npm i express才不会安装到全局路径

在这里插入图片描述
在这里插入图片描述
解决依赖版本不一致
npm install --force

3.4

nvm
在这里插入图片描述
@代表src
在这里插入图片描述
nvm配置
两个路径要一样npm_mirror和node_mirror
在这里插入图片描述
在这里插入图片描述

create empty
在这里插入图片描述
create new project/module

在这里插入图片描述

create maven archetype
在这里插入图片描述

在这里插入图片描述
new spring initializer
2.6.13和3.0.2
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麻烦放收发室,谢谢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值