Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue3 Typescript + Axios 全栈开发教程:手把手教你写「待办清单」APP

Vue3 Typescript + Axios 全栈开发教程:手把手教你写「待办清单」APP

原创
作者头像
蒋川@卡拉云
发布于 2022-05-30 09:36:34
发布于 2022-05-30 09:36:34
1.7K0
举报
Vue3 Typescript + Axios 全栈开发教程:手把手教你写「待办清单」APP
Vue3 Typescript + Axios 全栈开发教程:手把手教你写「待办清单」APP

本文完整版:《Vue3 Typescript + Axios 全栈开发教程:手把手教你写「待办清单」APP

Vue3 的源码使用 TypeScript 编写,而 TypeScriptJS 的一个超集,主要提供对 ES6 的支持,以及更棒的代码可读性和高维护性。Axios 是基于 Promise 的 HTTP 请求库,它用在 node.js 和浏览器里,在本教程中我们使用 Vue3 Typescript 配合 Axios 通过 Get / Post / Put / Delete 请求与后端通讯。

本文通过手把手教你写一个前端「待办清单」app,带领大家详细理解 Vue3 Typescript 与 Axios 如何配置及如何与后端通讯,助你成为 Vue3 Typescript 与 Axios 全栈开发工程师。

本教程每段代码我都亲手测过,保证百分百没有错误,请打开你的 terminal 跟随本教程一起操作,从这里开始,成为一名全栈工程师。

如果你正在搭建后台管理工具,又不想处理前端问题,推荐使用卡拉云 ,卡拉云是新一代低代码开发工具,可一键接入常见数据库及 API ,无需懂前端,仅需拖拽即可快速搭建属于你自己的后台管理工具,一周工作量缩减至一天,详见本文文末。

##「待办清单」app 完成概览

02-01-app-todolist
02-01-app-todolist

我们搭建的「待办清单」app 包含以下几个功能/页面

1.首页:展示「待办清单」的列表,可点击查看清单详细及状态。

2.首页搜索:首页有搜索框,可搜索清单。

3.新增清单:可以新建一个清单。

4.编辑清单:可对清单内容进行增删改查

02-02-app-todo
02-02-app-todo
  • 「新增清单页」,提交新任务到数据库
02-03-app-addtodo
02-03-app-addtodo

「任务状态更新页」,修改待办任务的详情和状态并提交到数据库中

如果你跟随本教程一步步来,最终你也可以把 Vue3 Typescript + Axios +Vue Router 跑起来并发布自己对「待办清单」app

##前端部分 - Vue3 Typescript + Axios +Vue Router + 自己封装组件

03-02-vue3
03-02-vue3

我先来讲解一下前端各部分的功能,如果你没看懂也没关系,跟随教程一步一步走,全部完成后再回来看这个部分,你会豁然开朗。

  • App(应用本身):最外层,用户可看到的前端,用户指令从这里进入。
  • Vue Router(路由):路由根据用户指令选择指向三个组件(Components)中的一个。
  • Components(组件):组件是我们写的功能页,本教程带大家一起写三个组件。
  • TodoDataService:用户在组件中 CRUD 数据,数据根据 TodoDataService 中的规则进行组装。
  • axios(API 调取):axios 会根据 TodoDataService 中的规则与后端 API 通讯交换数据。

前端 Vue3 Typescript 项目结构

vue-typescript-axios
vue-typescript-axios

简单讲一下各文件的作用,本教程后文将手把手教你写每一个配置文件及他们所有的源码

  • package.json 包含 5 个主要模块:VuetypescriptVue-routeraxiosbootstrap
  • 有 3 个组件(功能页面):TodoListTodo、 AddTodo
  • router.js 为每个组件(功能页面)定义路由。
  • http-common.js 是 axios 初始化信息,标记了与后端 API 通讯的地址
  • TodoDataService 具有向 API 发送 HTTP 请求的方法。
  • vue.config.js 设置 Vue 访问端口

下面,我们正式进入前后端搭建实战环节,一定要跟随本教程一起操作,自己亲手实践是学会的基础,打开你的 terminal ,我们一起来。

##Vue3 Typescript 安装教程及配置

本教程适用于 Win / Linux / MacOS

安装 Vue3 ,使用 npm 安装 Vue

代码语言:txt
AI代码解释
复制
sudo npm install -g @vue/cli
04-01-setup-vue3
04-01-setup-vue3

接着我们创建一个 Vue 的项目,运行命令:

代码语言:txt
AI代码解释
复制
vue create vue3-ypescript-axios-todolist-kalacloud
vue-create
vue-create

运行起来,你会看到几个选项,选择 Manually select features,我们来自定义安装,这样可以选择 Vue3 + Typescript 安装。

vue-create-typescript
vue-create-typescript

注意选择 TypeScript,默认是 Vue3 安装

vue-create-typescript-end
vue-create-typescript-end

安装完成后,会生成一个「vue3-ypescript-axios-todolist-kalacloud」目录,我们所有的前端代码都会存在这里。

代码语言:txt
AI代码解释
复制
cd vue-kalacloud-com
root@kalacloud.com:~/vue3-ypescript-axios-todolist-kalacloud$

cd 到这个目录下,接下来我们要开始配置 Vue 的开发环境。

扩展阅读《顶级开源 vue 表单设计器测评推荐

##在 Vue3 Typescript 中安装使用 Bootstrap

Bootstrap 最初是由 Twitter 两名工程师开发的响应式开源框架,简洁优雅,自适应PC和移动端。现在已经是全球使用最受欢迎的独立 CSS 框架之一。

我们先来把它安装到 Vue 中,在「vue3-ypescript-axios-todolist-kalacloud」根目录执行安装命令:

代码语言:txt
AI代码解释
复制
npm install bootstrap jquery popper.js

然后打开 /src/main.ts 文件,导入 Bootstrap:

代码语言:txt
AI代码解释
复制
import { createApp } from 'vue'
import App from './App.vue'
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'

特别提示:为了避免奇怪的错误,请完整复制本教程中的全部代码,使用完全替换的方式将教程中的代码粘贴到对应的文件中。

处理前端问题太麻烦?

试试卡拉云,仅需拖拽组件连接 API 和数据库直接生成后台管理系统,将两个月的工期降低至两天

##在 Vue3 Typescript 中安装使用 Vue Router

Vue Router 是 Vue 的官方路由,与 Vue 深度整合,让构建响应式单页面变得非常简单快捷。

在项目根目录执行安装 Vue Router 的命令:

然后在 /src 文件夹中新建一个文件 router.ts 并定义一下 Vue 的路由

(在 Terminal 里,你可以使用 nano router.ts 的方式新建 js 文件并打开编辑器粘贴代码)

代码语言:txt
AI代码解释
复制
import { createWebHistory, createRouter } from "vue-router";
import { RouteRecordRaw } from "vue-router";

const routes: Array<RouteRecordRaw> = [
  {
    path: "/",
    alias: "/todo",
    name: "todo",
    component: () => import("./components/TodoList.vue")
  },
  {
    path: "/todo/:id",
    name: "todo-details",
    component: () => import("./components/Todo.vue")
  },
  {
    path: "/add",
    name: "add",
    component: () => import("./components/AddTodo.vue")
  }
];

const router = createRouter({
  history: createWebHistory(),
  routes,
});

export default router;

router.ts 中我们为每个页面创建一个路由:

  • path:路由指向的 URL 路径
  • name:路由指向这个页面时使用的名字
  • component:路由调用此页面时,要加在的组件(这个组件我们马上一起动手写)

然后我们打开 /src/main.ts,在这里加上 router 路由信息 (最后一行):

代码语言:txt
AI代码解释
复制
import { createApp } from 'vue'
import App from './App.vue'
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'
import router from './router'

createApp(App).use(router).mount('#app')

最后一步,在/src目录下创建 shims-vue.d.ts

代码语言:txt
AI代码解释
复制
import VueRouter, { Route } from 'vue-router'

/* eslint-disable */
declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  const component: DefineComponent<{}, {}, any>
  export default component
}

declare module 'vue/types/vue' {
  interface Vue {
    $router: VueRouter
  }
}

现在,Vue 声明了 $router 这样就不会报错了。

扩展阅读《5款开源vue 移动端 ui 组件库测评推荐

##在 Vue3 Typescript 中添加导航栏和 Router View

接下来,我们打开 /src/App.vue 删掉里面全部代码,然后加入咱们自己项目的导航栏和 Router View :

代码语言:txt
AI代码解释
复制
<template>
  <div id="app">
    <nav class="navbar navbar-expand navbar-dark bg-dark">
      <router-link to="/" class="navbar-brand">卡拉云_kalacloud.com</router-link>
      <div class="navbar-nav mr-auto">
        <li class="nav-item">
          <router-link to="/todo" class="nav-link">任务清单</router-link>
        </li>
        <li class="nav-item">
          <router-link to="/add" class="nav-link">新增任务</router-link>
        </li>
      </div>
    </nav>

    <div class="container mt-3">
      <router-view />
    </div>
  </div>
</template>

<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({
  name: "App",
});
</script>

特别提示:为了避免奇怪的错误,请完整复制本教程中的全部代码,使用完全替换的方式将教程中的代码粘贴到对应的文件中。

扩展阅读《12款开源 vue ui 组件库框架测评推荐

##在 Vue3 Typescript 安装 Axios 并初始化 HTTP 客户端

Axios 是一个基于 Promise 的 HTTP 请求库,它用在 node.js 和浏览器里,在本教程中我们使用 Axios 通过 Get / Post / Put / Delete 请求与后端进行交互。

我们先来安装 Axios:

然后,在 /src 文件夹下,创建一个 http-common.ts 文件并复制以下代码进去:

代码语言:txt
AI代码解释
复制
import axios from "axios";export default axios.create({
  baseURL: "http://localhost:8080/api",
  headers: {
    "Content-type": "application/json"
  }
});

这里的 baseURL 是后端的 REST API url ,记得改成你的服务器配置。

如果你是萌新,没看懂,也没有关系,这里不用改。我们将在本教程的「后端」部分,教你配置后端服务器。

##让 Vue3 Typescript 可以通过 Axios 发送 HTTP 请求

我们要给 Axios 建立一套与后端服务器沟通的规则,告诉 Axios 使用这套规则去后端拿那数据。

我们要在 /src/services/ 创建一个TodoDataService.ts

如果没有 services 文件夹,先建一个,然后在文件夹里新建TodoDataService.ts 并复制以下代码。

(文件位置:/src/services/TodoDataService.ts

代码语言:txt
AI代码解释
复制
import http from "@/http-common";

class TodoDataService {
  getAll(): Promise<any> {
    return http.get("/todos");
  }

  get(id: any): Promise<any> {
    return http.get(`/todos/${id}`);
  }

  create(data: any): Promise<any> {
    return http.post("/todos", data);
  }

  update(id: any, data: any): Promise<any> {
    return http.put(`/todos/${id}`, data);
  }

  delete(id: any): Promise<any> {
    return http.delete(`/todos/${id}`);
  }

  deleteAll(): Promise<any>{
    return http.delete(`/todos`);
  }

  findByTitle(title: string): Promise<any> {
    return http.get(`/todos?title=${title}`);
  }
}

export default new TodoDataService();

最后一步,创建「待办事宜」界面和相应数据接口

新建 types/todo.ts 并定义 Todo 接口

代码语言:txt
AI代码解释
复制
export default interface Todo {
  id: null;
  title: string;
  description: string;
  published: boolean;
}

新建 types/ResponseData.ts 并定义 ResponseData 接口

代码语言:txt
AI代码解释
复制
export default interface ResponseData {
  data: any;
}

扩展阅读《如何在 vue 中加入图表 - vue echarts 使用教程

##创建 Vue3 Typescript 组件

Vue3 Typescript 与旧版本不同,需要给 ts 分配 lang 属性标签。

Vue 一般是这么来定义组件:

而现在,我们这么定义,这种形式,大家应该在前文已经看到了。

代码语言:txt
AI代码解释
复制
import { defineComponent } from 'vue'
export default defineComponent({ ... })

接着我们来写 Vue Router 中定义的三个组件,也就是我们 app 页面上会显示的三个响应页。

「新增 ToDo 组件」 - AddTodo.vue

02-02-app-todo
02-02-app-todo

上图为「AddTodo.vue」最终样式

这个组件用于向数据库中新增 ToDo 数据,它包含 2 个字段:titledescription

用它来调用咱们前一节写的 TodoDataService.create()

在 components 文件夹下创建 AddTodo.vue ,填入以下代码:

文件位置:/src/components/AddTodo.vue

代码语言:txt
AI代码解释
复制
<template>
  <div class="submit-form">
    <div v-if="!submitted">
      <div class="form-group">
        <label for="title">任务</label>
        <input
          type="text"
          class="form-control"
          id="title"
          required
          v-model="todo.title"
          name="title"
        />
      </div>

      <div class="form-group">
        <label for="description">详情</label>
        <input
          class="form-control"
          id="todo"
          required
          v-model="todo.description"
          name="description"
        />
      </div>

      <button @click="saveTodo" class="btn btn-success">提交</button>
    </div>

    <div v-else>
      <h4>提交成功</h4>
      <button class="btn btn-success" @click="newtodo">添加</button>
    </div>
  </div>
</template>

<script lang="ts">
import { defineComponent } from "vue";
import TodoDataService from "@/services/TodoDataService";
import Todo from "@/types/Todo";
import ResponseData from "@/types/ResponseData";
export default defineComponent({
  name: "add-todo",
  data() {
    return {
      todo: {
        id: null,
        title: "",
        description: "",
        published: false,
      } as Todo,
      submitted: false,
    };
  },
  methods: {
    saveTodo() {
      let data = {
        title: this.todo.title,
        description: this.todo.description,
      };
      TodoDataService.create(data)
        .then((response: ResponseData) => {
          this.todo.id = response.data.id;
          console.log(response.data);
          this.submitted = true;
        })
        .catch((e: Error) => {
          console.log(e);
        });
    },
    newTodo() {
      this.submitted = false;
      this.todo = {} as Todo;
    },
  },
});
</script>
<style>
.submit-form {
  max-width: 300px;
  margin: auto;
}
</style>

扩展阅读《5款开源 vue table 表格组件推荐

「ToDO 列表组件」 - TodoList.vue

02-01-app-todolist
02-01-app-todolist

上图为「TodoList.vue」最终效果

该组件调用 3 个 TodoDataService 方法:

  • getAll()
  • deleteAll()
  • findByTitle()

components 文件夹下创建 TodoList.vue,填入以下代码:

文件位置:/src/components/TodoList.vue

代码语言:txt
AI代码解释
复制
<template>
  <div class="list row">
    <div class="col-md-8">
      <div class="input-group mb-3">
        <input
          type="text"
          class="form-control"
          placeholder="搜索待办清单"
          v-model="title"
        />
        <div class="input-group-append">
          <button
            class="btn btn-outline-secondary"
            type="button"
            @click="searchTitle"
          >
            Search
          </button>
        </div>
      </div>
    </div>
    <div class="col-md-6">
      <h4>待办清单</h4>
      <ul class="list-group">
        <li
          class="list-group-item"
          :class="{ active: index == currentIndex }"
          v-for="(todo, index) in todos"
          :key="index"
          @click="setActiveTodo(todo, index)"
        >
          {{ todo.title }}
        </li>
      </ul>
      <button class="m-3 btn btn-sm btn-danger" @click="removeAllTodos">
         删除所有清单
      </button>
    </div>
    <div class="col-md-6">
      <div v-if="currentTodo.id">
        <h4>待办详情</h4>
        <div>
          <label><strong>任务:</strong></label> {{ currentTodo.title }}
        </div>
        <div>
          <label><strong>详情:</strong></label>
          {{ currentTodo.description }}
        </div>
        <div>
          <label><strong>状态:</strong></label>
          {{ currentTodo.published ? "Published" : "Pending" }}
        </div>
        <router-link
          :to="'/todos/' + currentTodo.id"
          class="badge badge-warning"
          >编辑</router-link
        >
      </div>
      <div v-else>
        <br />
        <p>点击右侧列表查看详情</p>
      </div>
    </div>
  </div>
</template>
<script lang="ts">
import { defineComponent } from "vue";
import TodoDataService from "@/services/TodoDataService";
import Todo from "@/types/Todo";
import ResponseData from "@/types/ResponseData";
export default defineComponent({
  name: "todos-list",
  data() {
    return {
      todos: [] as Todo[],
      currentTodo: {} as Todo,
      currentIndex: -1,
      title: "",
    };
  },
  methods: {
    retrieveTodos() {
      TodoDataService.getAll()
        .then((response: ResponseData) => {
          this.todos = response.data;
          console.log(response.data);
        })
        .catch((e: Error) => {
          console.log(e);
        });
    },
    refreshList() {
      this.retrieveTodos();
      this.currentTodo = {} as Todo;
      this.currentIndex = -1;
    },
    setActiveTodo(todo: Todo, index = -1) {
      this.currentTodo = todo;
      this.currentIndex = index;
    },
    removeAllTodos() {
      TodoDataService.deleteAll()
        .then((response: ResponseData) => {
          console.log(response.data);
          this.refreshList();
        })
        .catch((e: Error) => {
          console.log(e);
        });
    },
    searchTitle() {
      TodoDataService.findByTitle(this.title)
        .then((response: ResponseData) => {
          this.todos = response.data;
          this.setActiveTodo({} as Todo);
          console.log(response.data);
        })
        .catch((e: Error) => {
          console.log(e);
        });
    },
  },
  mounted() {
    this.retrieveTodos();
  },
});
</script>
<style>
.list {
  text-align: left;
  max-width: 750px;
  margin: auto;
}
</style>

扩展阅读《7款开源 vue admin 后台管理框架推荐

「 ToDo 内容更新组件」 - Todo.vue

02-03-app-addtodo
02-03-app-addtodo

上图为「Todo.vue」最终完成效果

components 文件夹下创建 Todo.vue,填入以下代码:

文件位置:/src/components/Todo.vue

代码语言:txt
AI代码解释
复制
<template>
  <div v-if="currentTodo.id" class="edit-form">
    <h4>待办事宜</h4>
    <form>
      <div class="form-group">
        <label for="title">任务:</label>
        <input
          type="text"
          class="form-control"
          id="title"
          v-model="currentTodo.title"
        />
      </div>
      <div class="form-group">
        <label for="description">详情:</label>
        <input
          type="text"
          class="form-control"
          id="description"
          v-model="currentTodo.description"
        />
      </div>
      <div class="form-group">
        <label><strong>状态:</strong></label>
        {{ currentTodo.published ? "Published" : "Pending" }}
      </div>
    </form>
    <button
      class="badge badge-primary mr-2"
      v-if="currentTodo.published"
      @click="updatePublished(false)"
    >
      未完成
    </button>
    <button
      v-else
      class="badge badge-primary mr-2"
      @click="updatePublished(true)"
    >
      完成
    </button>
    <button class="badge badge-danger mr-2" @click="deleteTodo">
      删除
    </button>
    <button type="submit" class="badge badge-success" @click="updateTodo">
      更新
    </button>
    <p>{{ message }}</p>
  </div>
  <div v-else>
    <br />
    <p>Please click on a Todo...</p>
  </div>
</template>
<script lang="ts">
import { defineComponent } from "vue";
import TodoDataService from "@/services/TodoDataService";
import Todo from "@/types/Todo";
import ResponseData from "@/types/ResponseData";
export default defineComponent({
  name: "todo",
  data() {
    return {
      currentTodo: {} as Todo,
      message: "",
    };
  },
  methods: {
    getTodo(id: any) {
      TodoDataService.get(id)
        .then((response: ResponseData) => {
          this.currentTodo = response.data;
          console.log(response.data);
        })
        .catch((e: Error) => {
          console.log(e);
        });
    },
    updatePublished(status: boolean) {
      let data = {
        id: this.currentTodo.id,
        title: this.currentTodo.title,
        description: this.currentTodo.description,
        published: status,
      };
      TodoDataService.update(this.currentTodo.id, data)
        .then((response: ResponseData) => {
          console.log(response.data);
          this.currentTodo.published = status;
          this.message = "状态修改成功";
        })
        .catch((e: Error) => {
          console.log(e);
        });
    },
    updateTodo() {
      TodoDataService.update(this.currentTodo.id, this.currentTodo)
        .then((response: ResponseData) => {
          console.log(response.data);
          this.message = "信息更新成功";
        })
        .catch((e: Error) => {
          console.log(e);
        });
    },
    deleteTodo() {
      TodoDataService.delete(this.currentTodo.id)
        .then((response: ResponseData) => {
          console.log(response.data);
          this.$router.push({ name: "todos" });
        })
        .catch((e: Error) => {
          console.log(e);
        });
    },
  },
  mounted() {
    this.message = "";
    this.getTodo(this.$route.params.id);
  },
});
</script>
<style>
.edit-form {
  max-width: 300px;
  margin: auto;
}
</style>

##设置 Vue3 Typescript 项目访问端口

在 Vue3 项目根目录创建 vue.config.js 文件,代码如下:

文件位置:根目录/vue.config.js

代码语言:txt
AI代码解释
复制
module.exports = {
  devServer: {
    port: 8081
  }
}

我们已经设置了我们的应用程序在端口上运行 8081

扩展阅读《Element Plus for Vue 3 入门教程

##运行 Vue3 Typescript 并在浏览器里查看效果

05-01-run-vue
05-01-run-vue

至此,前端部分就全部完成了,我们来运行一下刚刚搭建的 Vue 前端代码,在浏览器里欣赏一下你自己的开发成果。

在项目根目录执行:npm run serve 然后打开浏览器,输入http://localhost:8081/,在浏览器中我们可以看到前端页面已经显示出来了。

如果你也看到和下图类似的界面,这说明你的 Vue3 Typescript 已经搭建完成,恭喜。

05-02-vue-web
05-02-vue-web

因为我们的后端还没有搭建,前端界面还没有连接数据,所以只有轮廓没有数据。

我将在下一篇文章中讲解如何使用 node.js + Express + Sequelize + MySQL 搭建后端框架,使前后端联通,最终完成「待办事宜」ap

##Vue3 Typescript + Axios 教程总结

本文详细讲解新版 Vue3 Typescript 与旧版 Vue 有什么区别及代码上的不同,以及 Axios 怎么与后端通讯。其实如果你根本不想处理复杂的前端问题,完全可以使用卡拉云来搭建前端工具,卡拉云内置多种常用组件,无需懂任何前端,仅需拖拽即可快速生成。不需要配置 Axios ,一键连接后端数据源。

卡拉云可帮你快速搭建企业内部工具,下图为使用卡拉云搭建的内部广告投放监测系统,无需懂前端,仅需拖拽组件,10 分钟搞定。你也可以快速搭建一套属于你的后台管理工具,了解更多

卡拉云企业内部工具
卡拉云企业内部工具

卡拉云是新一代低代码开发平台,与前端框架 Vue、React等相比,卡拉云的优势在于不用首先搭建开发环境,直接注册即可开始使用。开发者完全不用处理任何前端问题,只需简单拖拽,即可快速生成所需组件,可一键接入常见数据库及 API,根据引导简单几步打通前后端,数周的开发时间,缩短至 1 小时。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PS2023 Neural Filters(PS2023神经滤镜插件) V24.0 最新离线安装包直装版
PS2023神经滤镜插件是一款功能强大的AI照片优化供给,为用户提供了皮肤平滑度、智能肖像、兼容迁移、风景混合器、样式转换、色彩转移、着色、超级缩放、 深度模糊、移除伪影、照片恢复等功能,小编为大家找来了PS2023神经滤镜离线安装包,无需下载即可直接使用。
资源牛牛
2023/02/07
3K0
PS2023 Neural Filters(PS2023神经滤镜插件) V24.0 最新离线安装包直装版
Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
审美时代如果你不会ps是不是说不过去了。现在朋友圈的照骗基本都被ps的照骗充斥着。所以赶紧来一起学习Photoshop这一项技能吧!首先你要安装一个ps
用户7442032
2022/12/20
4.5K0
Ps图像处理:Photoshop 2023
Photoshop 2023是一款功能强大的图像处理软件,Photoshop 2023可以让摄影师对照片进行后期调整、修复和优化,以获得最佳效果。 是许多设计师创建海报、插图、广告和其他视觉设计作品的首选软件。可以让美术家创建数字绘画作品,并进行各种颜色和纹理效果的调整。 Photoshop 可以用来创建和编辑网站的图像和图标。 Photoshop 可以用来创建广告素材和商业宣传品,如海报、杂志广告和电视广告等。利用Photoshop 软件在桌面上的强大功能,您可以在灵感来袭时随时随地进行创作。
用户10520003
2023/04/21
1.1K0
ps软件下载与安装,ps2021-2023官方最新版本下载安装,ps软件
首先,学习ps软件需要耐心和毅力。这个软件是功能强大的图像编辑软件,因此它的学习曲线比较陡峭。初学者可能需要花费一些时间来掌握一些基本概念和工具,例如图层、选区、画笔等等。但是一旦你掌握了这些基础知识,就可以开始发挥你的创造力了。
用户10436734
2023/03/18
8860
ps软件下载与安装,ps2021-2023官方最新版本下载安装,ps软件
Mac版Photoshop 2020分享,破解免费直装版--所有PS软件全版本!
Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件,目前是行业内最流行的图像处理软件。Adobe推出了全新的Photoshop 2020 Mac版本,支持iPad和云文档,更好的在电脑和平台上协作。同时加入大量人工智能AI的智能处理,大大加强PhotoShop的图型处理智能化。
用户10290979
2023/01/10
3.3K0
PS2022下载ps软件怎么下载 PS最新版安装包下载 PS安装教程ps软件下载
ps是什么意思:PS指的是一种图像处理软件,它全称叫AdobePhotoshop。Photoshop 一直以来都被广泛的应用于各个领域中,ps2023最新版还有着强大的图像修饰、图像合成编辑以及调色功能,利用这些功能可以快速修复照片,也可以修复人脸上的斑点等缺陷,快速调色等。PS可分为图画编辑、图画组成、校色调色及特效制造。图画编辑是图画处理的根底,可以对图画做各种变换,也可进行复制、去掉斑驳、修补、修饰图画的破损等。图画组成则是将几幅图画经过图层操作、东西使用组成完好的、传达清晰意义的图画,这是美术规划的必经之路。
木子学Lee
2023/02/25
1.8K0
PS2022下载ps软件怎么下载 PS最新版安装包下载 PS安装教程ps软件下载
Adobe Photoshop 2020软件安装教程--所有PS软件全版本!
在这新版本中,Adobe从命名上就做出了新的改变,去除了用了七八年的CC,新版直接就叫做Adobe Photoshop 2020。
用户10295662
2023/01/10
1.8K0
灵活运用PS切图技巧
话说,以前的前端工程师在入行时都当过切图仔或切图女。曾经,切图作为前端一门基础且必备的技能,不知何时开始已经不再提起。很多面试官在招聘时都忽略了PS的存在,其实在国外一位优秀的前端工程师是包揽设计工作的,PS玩得可溜呢。
JowayYoung
2020/04/01
1K0
灵活运用PS切图技巧
PS基础操作及常用快捷键
文章目录 1. PS界面 2. PS基础操作 3. 图层 4. 填充颜色 5. 选框工具 6. 自由变化 ctrl+T 7. 常用快捷键 1. PS界面 窗口菜单:管理(显示/隐藏)工具栏、属性栏、面
兮动人
2021/06/11
2.1K0
PS基础操作及常用快捷键
PS技巧方法==软件安装包Photoshop最新版本下载安装
Photoshop是一款非常好用的图像编辑软件,很多小伙伴在遇到有图片需要进行编辑 工作 时,都会使用这款软件进行操作,但是也不妨有许多新手同学们第一次使用这款软件,软件强大的功能让他们有些不知如何操作,那么今天小编就为大家带来一种PS里 抠图 的步骤分享,希望使用这款软件的新用户们能从中学到更多关于Photoshop的知识!
木子学Lee
2023/03/26
1.1K0
PS技巧方法==软件安装包Photoshop最新版本下载安装
打造高水平设计的必备利器Ai中文版illustrator-直装永久使用
Adobe illustrator是一种应用于出版、多媒体和在线图像的工业标准矢量插画的软件,很多有插画排版或者矢量插图 工作 需求的小伙伴们会经常和这款软件打交道,但是最近小编发现了这款软件的新功能,就是制作海报,小编相信有很多小伙伴们还不知道吧,那么接下来就看看小编为大家带来的这篇文章学习一下制作方法吧!
木子学Lee
2023/04/08
1.6K0
打造高水平设计的必备利器Ai中文版illustrator-直装永久使用
photoshop常用图片处理技巧
执行菜单命令 文件/新建 可以新建一张图片,设置大小,颜色模式选RGB,网页图片一般选择72像素/英寸,如果图像要打印,可设为300/英寸。背景按情况选透明或白色。
Devops海洋的渔夫
2019/06/02
2.2K0
PS软件安装及破解方法--所有PS软件全版本!
Photoshop 下载与安装超详细图文教程,供参考,望有用! 本教程属于直装版,安装便捷,完成后即破解。 全版本ps下载地址(包括最新的2023版本):yijiaup.com/baidu-tiao
用户10290979
2023/01/10
2.9K0
ps工具栏快捷键大全-大神教你这10招PS操作技巧, 提高你的工作效率
  旋转画布,是在很多设计任务中都会用到的命令。使用时,在英文输入状态下,按键盘快捷键“R”选择或者长按左侧工具栏的“抓手工具”弹出选项选择“旋转视图工具”ps工具栏快捷键大全,然后就可以通过单击鼠标左键来旋转画布了。
宜轩
2022/12/29
9350
快速批量去除图片水印方法大全~~
去水印是不复杂啦,可几千页下来,自己用橡皮抹会抹抽筋的吧~~~哈哈哈,下边记录一下偶的心路过程~~~(汗,一副盗版光荣的样子,RP真是越来越差-_-!!) 所用软件:Adobe acrobat professional 7.0 和Adobe photoshop CS2 1。本来就是扫描之后存出来的PDF嘛,所以就用PRO7.0里的导出图片功能把所有的单页转回成图片先,自动按顺序命名,存在文件夹A中。 2。用CS2随便打开其中一页,例如第49页—用“吸管”工具选中那个水印的颜色为前景色。 3。CS菜单—窗口—勾选“动作”—出来个动作的小窗口。 4。动作—新建动作—命名为“去水印”—-开始“记录”(是为了以后那几千多页的,电脑傻的只会重复呢) 5。现在开始处理那第49页。菜单—选择—色彩范围—-颜色容差里偶写90(吼吼,可以变的啦,以选出那个大水印的全部颜色但是不会选中跟水印重复的字体颜色为标准)—-按“确定”。 6。菜单—选择—扩大选取(不然会有水印框框留在原处的) 7。按DELETE键删除选中的水印。(或者编辑—填充白色,反正弄完了看不见水印就好) 8。菜单–文件—存储为WEB所用格式JPG(黑白页面品质低点也没啥影响,反正一页变小点,一本书下来就轻便不少呢~~)—存到文件夹B。 9 动作小窗口—停止记录 10。文件—自动—批处理—源文件夹就选存有水印的文件夹A,目标文件就选处理好了没水印的文件夹B,错误嘛,“选记录到文件”,随便建个记事本文件记好了。 按了确定之后呢,就该聊天的聊天,该打牌的打牌咯,想睡觉的也可以去睡觉,哈哈哈哈哈哈,反正PS好之后自然会停止的。PRO7.0里就有从多个文件创建一个PDF的选项,可惜速度慢了点,闲的话就下个软件image2PDF啥的,西西,很容易就又整合成书了~~~
全栈程序员站长
2022/07/23
3K0
快速批量去除图片水印方法大全~~
ps切图必知必会
对于前端切图,相信很多小伙伴都不会陌生,但是对于新手,有时却很棘手,想着我本是来写代码的,你给我一张图干嘛的, 有时,或许你总奢望着UI设计师,把所有的图都给你切好,你只管撸码的,然而事实并非如此,有时候呢,设计师给我们的图,也并非是一成不变,往往也需要作一些调整,更改,完美的将UI设计图,进行还原实现产品经理的意图,是前端小伙伴职责所在,那么熟练简单的ps操作,就很重要了,虽然我们不是设计者,但是我们是具体的实现者,实现从0到1的过程,至于前端ps操作,绝大多数工作是简单的切图(抠图),测量,图片简单的处理,将图片利用web技术进行填充布局实现静态页面展现就可以了,至于,ps软件,我也只是停留在简单的使用,有时候,在一些群里,看到一些小伙伴,对于切图,有些畏惧,打开ps软件,无从下手,有时候呢,即使自己曾今,ps技术玩的很溜,但是只要一段时间没有去接触,就会很陌生,一些习以为常的技巧,忘得一干二净,非常苦恼,您将在本篇学会一些常用的奇淫绝技,完全可以胜任ps切图工作,今天,就我的学习和使用,跟大家分享一下自己的学习心得,如果你已经是老司机了,可以直接忽略,欢迎路过的老师,多提意见和指正
itclanCoder
2020/10/28
3.2K0
ps切图必知必会
adobe photoshop 认证证书
Adobe Photoshop是行业标准的图像编辑软件,在全球范围内被专业摄影师,业余摄影师和设计师使用,他们希望超越摄影机的拍摄范围来完善其数字图像。
IT胶囊
2022/09/13
1.9K0
adobe photoshop 认证证书
2020版PS快捷键_ps应用快捷键大全
说明:为避免篇幅过大,本文快捷键是基于Windows系统下Photoshop 2020版本的。Mac系统下的快捷键可按以下方式进行对应:Ctrl→Command,Alt→Option。有不能对应的,本文会给出说明。部分项目附加英文是为了方便记忆快捷键。
全栈程序员站长
2022/11/11
1.7K0
2020版PS快捷键_ps应用快捷键大全
关于前端的photoshop初探的学习笔记
写在前边 这还是高三的时候暑假的时候学习这个软件时记的笔记呢,今天又在电脑上找到了它,总觉得不应该让他尘封在我的硬盘上,于是挂了出来。 温馨提示:比较乱,写给自己看的,看不下去,按ctrl+W 笔记内容 ps简介 可以用于合成。 可以三维 adobe bridge图像浏览器 可以直接将图片拖动到ps的编辑系统中。。但是是出于临时文件状态,还需要对他进行保存。。 网站上某些图片不能够拉动,但是可以利用截图功能来实现。。 两张图片同时拉倒一个文件中构成两个不同的图层。。打开文件的几种方法。。 ps数
Angel_Kitty
2018/04/09
2.4K0
ps工具栏快捷键大全-超实在的PS快捷键
  ctrl+m 曲线(打开后按alt键点击曲线面板-中间的格子,可以改变格子的浓密)
宜轩
2022/12/29
1.7K0
推荐阅读
相关推荐
PS2023 Neural Filters(PS2023神经滤镜插件) V24.0 最新离线安装包直装版
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档