一、手把手教你 Vue2+Ts

vue2+ts

vue-cli搭建vue2+ts项目

使用 vue-cli 创建

vue create 项目名称
  • Please pick a preset - 选择 Manually select features

  • Check the features needed for your project - 选择上 TypeScript ,特别注意点空格是选择,点回车是下一步

  • Choose a version of Vue.js that you want to start the project with - 选择 2.x

提示s2.gif

等到项目构建完成便可启动项目了,命令: yarn serve或者npm run serve

>yarn serve

看到熟悉的页面,启动成功.
image.png

项目结构:

与之前的vue2项目比较 出现了几个比较特殊的文件之外,router.js变为router.ts,main.js 变为main.ts,其余的文件和vue2一样。
image.png

tsconfig.json

typescript 配置文件https://cn.vuejs.org/v2/guide/typescript.html#%E6%8E%A8%E8%8D%90%E9%85%8D%E7%BD%AE

image.png

shims-tsx.d.ts

允许.tsx 结尾的文件,在 Vue 项目中编写 jsx 代码

image.png

shims-vue.d.ts

主要用于 TypeScript 识别.vue 文件,Ts 默认并不支持导入 vue 文件

image.png

vue.config.js

进入项目目录发现没有 vue.config.js,手动创建一个和package.json同级

vue.config.js配置



// const proxyConfig =
//   process.env.NODE_ENV === "production"
//     ? require("./proxy.pro.config")
//     : require("./proxy.dev.config");


module.exports = {
  assetsDir: "static",
  runtimeCompiler: true,

  devServer: {
    host: "0.0.0.0",
    // 端口号
    port: 8080,
    https: false,
    // https:{type:Boolean}
    //配置自动启动浏览器
    open: true,
    //热更新
    hot: true,
    //配置多个跨域
    proxy: { }
    // proxy: proxyConfig.proxyList,
  },

};

如果遇到options.proxy should be {Object|Array}错误,将

proxy:{}

改为

proxy:null

main.ts、router.ts和vue2内容一样没啥好说的

*.vue 文件

打开 views文件加下的 Home.vue

image.png

<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png" />
    <HelloWorld msg="Welcome to Your Vue.js + TypeScript App" />
  </div>
</template>

<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import HelloWorld from "@/components/HelloWorld.vue"; // @ is an alias to /src

@Component({
  components: {
    HelloWorld,
  },
})
export default class Home extends Vue {}
</script>

  1. <script> 标签上声明 lang="ts",使用typescript语言
  2. 引入 vue-property-decorator
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一个使用Vue 2和TypeScript编写的登陆页面示例: 首先,在Vue组件中定义需要的数据和方法,包括表单中的用户名和密码、表单提交方法等。 ```typescript <template> <div> <form @submit.prevent="submitForm"> <div> <label for="username">用户名:</label> <input type="text" id="username" v-model="username" required> </div> <div> <label for="password">密码:</label> <input type="password" id="password" v-model="password" required> </div> <button type="submit">登录</button> </form> </div> </template> <script lang="ts"> import { Component, Vue } from 'vue-property-decorator'; @Component export default class Login extends Vue { private username: string = ''; private password: string = ''; private submitForm(): void { // 表单提交逻辑 } } </script> ``` 在这个示例中,使用了`vue-property-decorator`库来简化Vue组件的定义,并使用了`private`修饰符来保证数据的私有性。 接下来,可以在`submitForm`方法中添加表单提交的逻辑,比如发送HTTP请求到后端验证用户名和密码是否正确,并在验证成功后跳转到另一个页面。 ```typescript private submitForm(): void { // 发送HTTP请求到后端验证用户名和密码是否正确 this.$http.post('/api/login', { username: this.username, password: this.password, }).then((response) => { // 验证成功,跳转到另一个页面 this.$router.push('/dashboard'); }).catch((error) => { // 验证失败,提示用户错误信息 alert('用户名或密码错误'); }); } ``` 在这个示例中,使用了`vue-resource`库来发送HTTP请求,并使用了Vue Router来实现页面跳转。 最后,在使用这个组件的地方,可以像下面这样引入并渲染它: ```typescript <template> <div> <Login /> </div> </template> <script lang="ts"> import { Component, Vue } from 'vue-property-decorator'; import Login from '@/components/Login.vue'; @Component({ components: { Login, }, }) export default class LoginPage extends Vue {} </script> ``` 在这个示例中,将`Login`组件作为另一个组件的子组件来使用,并在`components`选项中注册它。 ### 回答2: 使用Vue2和TypeScript写一个登录页面可以通过以下步骤来实现: 1. 创建一个Vue项目并安装相关依赖: ```bash vue create login-page cd login-page npm install vue-router vue-property-decorator ``` 2. 创建登录组件(Login.vue): ```vue <template> <div> <h1>Login Page</h1> <form @submit.prevent="login"> <input type="text" v-model="username" placeholder="Username" /> <input type="password" v-model="password" placeholder="Password" /> <button type="submit">Login</button> </form> </div> </template> <script lang="ts"> import { Component, Vue } from 'vue-property-decorator'; @Component export default class Login extends Vue { private username = ''; private password = ''; private login() { // 调用登录API,验证用户名和密码 if (this.username === 'admin' && this.password === 'admin123') { alert('登录成功'); } else { alert('登录失败'); } } } </script> ``` 3. 创建路由文件(src/router/index.ts): ```ts import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'; import Login from '@/views/Login.vue'; const routes: Array<RouteRecordRaw> = [ { path: '/', name: 'Login', component: Login, }, ]; const router = createRouter({ history: createWebHistory(), routes, }); export default router; ``` 4. 修改入口文件(src/main.ts): ```ts import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app'); ``` 5. 在根组件(App.vue)中添加路由出口: ```vue <template> <div id="app"> <router-view /> </div> </template> <script lang="ts"> import { Component, Vue } from 'vue-property-decorator'; @Component export default class App extends Vue {} </script> ``` 6. 运行项目: ```bash npm run serve ``` 通过以上步骤,你就可以在浏览器中访问项目,并且在登录页面中输入用户名和密码进行验证了。如果用户名和密码匹配,则弹出"登录成功"的提示,否则弹出"登录失败"的提示。 ### 回答3: Vue是一款流行的JavaScript框架,而TypeScript是一种静态类型的JavaScript的超集。结合VueTypeScript,我们可以更加高效地开发出可靠、可维护的代码。 在写一个登录页面时,我们可以首先安装VueTypeScript的依赖。使用Vue CLI可以快速创建一个基本的Vue项目。然后,我们可以在项目中创建一个名为“Login.vue”的组件来处理登录页面的逻辑和界面。 在登录页面中,我们通常需要以下几个元素:用户名输入框、密码输入框、登录按钮和错误提示信息。我们可以使用Vue的数据绑定和模板语法来处理这些元素。 首先,在Login.vue组件中,我们可以定义一个data属性,用于存储用户名和密码的输入值,以及错误信息。我们可以使用v-model指令将输入框与data属性进行双向绑定。例如: ```typescript <template> <div> <input v-model="username" type="text" placeholder="用户名"> <input v-model="password" type="password" placeholder="密码"> <p>{{ error }}</p> <button @click="login">登录</button> </div> </template> <script lang="ts"> import { Component, Vue } from 'vue-property-decorator'; @Component export default class Login extends Vue { private username: string = ''; private password: string = ''; private error: string = ''; private login(): void { // 登录逻辑 if (this.username === 'admin' && this.password === 'password') { // 登录成功 // 跳转到其他页面 } else { this.error = '用户名或密码错误'; } } } </script> ``` 在上面的代码中,我们使用了`@click`指令来调用`login`方法,该方法用于处理登录逻辑。如果用户名和密码正确,则可以执行其他操作,例如跳转到其他页面。如果用户名和密码错误,则会更新`error`属性,从而在页面上显示错误信息。 最后,我们需要在App.vue中使用Login组件。可以在App.vue中引入Login组件,并将其放置在合适的位置。例如: ```typescript <template> <div id="app"> <!-- 其他内容 --> <login></login> </div> </template> <script lang="ts"> import { Component, Vue } from 'vue-property-decorator'; import Login from './Login.vue'; @Component export default class App extends Vue {} </script> ``` 通过上述步骤,我们就完成了一个简单的使用VueTypeScript编写的登录页面。当用户输入正确的用户名和密码时,就可以执行相应的操作,否则显示错误信息。这个例子只是一个简单的示范,你可以根据实际需要进行调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值