vue.js课程学习与体会

经过本学期的课程学习,以下是我对vue的一些基本了解与使用

Vue 2.x 的主要特性和概念:

1. 声明式渲染:

  • Vue 使用简洁的模板语法来声明式地将数据渲染到 DOM 上。
  • 通过使用双大括号 {{ }} 进行插值,可以将数据动态地绑定到 HTML 中。

2. 组件化开发:

  • Vue 2.x 支持组件化开发,允许开发者将页面拆分为独立的、可重用的组件。
  • 每个组件都有自己的状态、生命周期钩子等。

3. Vue 实例:

  • 应用的核心是一个 Vue 实例,通过实例化 Vue 构造函数来创建。
  • 实例可以拥有数据、方法、生命周期钩子等。

4. 数据绑定:

  • Vue 提供了双向数据绑定,即当数据变化时,视图会自动更新,反之亦然。
  • 使用 v-model 指令可以实现表单元素与数据的双向绑定。

5. 指令:

  • Vue 提供了一系列的指令,例如 v-ifv-forv-show 等,用于处理 DOM 元素的显示和隐藏,循环渲染等操作。

6. 事件处理:

  • 使用 v-on 指令可以监听 DOM 事件,触发相应的方法。
  • 事件修饰符如 .stop.prevent 等可以方便地修改事件的行为。

7. 计算属性和侦听器:

  • Vue 支持计算属性,通过 computed 关键字定义的计算属性会根据其依赖缓存起来,只有在相关依赖改变时才会重新计算。
  • 使用 watch 来监听数据的变化,并执行相应的操作。

8. 过渡效果和动画:

  • Vue 提供了一些内置的过渡类名,可以通过 CSS 过渡或动画来实现元素的平滑过渡。

9. 路由管理:

  • 对于单页面应用 (SPA),Vue 2.x 通常与 Vue Router 配合使用,实现前端路由。

10. 状态管理:

  • 对于大型应用,Vue 2.x 可以使用 Vuex 进行状态管理,将状态集中管理,方便组件之间的通信。

11. 生命周期钩子:

  • Vue 提供了一系列的生命周期钩子函数,如 beforeCreatecreatedbeforeMountmounted 等,允许开发者在不同阶段执行自定义逻辑。

除此之外,vue项目还常常使用一些包,其分别如下 

  1. Vue Router:

    • 描述: 用于管理应用程序的路由。
    • 安装命令: npm install vue-router
  2. Vuex:

    • 描述: 用于集中管理应用程序的状态。
    • 安装命令: npm install vuex
  3. Axios:

    • 描述: 用于进行 HTTP 请求的库。
    • 安装命令: npm install axios
  4. Element UI 或 Vuetify:

    • 描述: 两个流行的UI框架,提供了丰富的Vue组件。
    • 安装命令:
      • Element UI: npm install element-ui
      • Vuetify: npm install vuetify
  5. Lodash:

    • 描述: 提供了很多实用的 JavaScript 工具函数。
    • 安装命令: npm install lodash
  6. Moment.js:

    • 描述: 处理日期和时间的库。
    • 安装命令: npm install moment
  7. Vue Axios:

    • 描述: Vue.js 的 Axios 插件,用于更方便地在Vue实例中使用Axios。
    • 安装命令: npm install vue-axios
  8. Vue-i18n:

    • 描述: 提供国际化支持的Vue插件。
    • 安装命令: npm install vue-i18n
  9. Vue Masonry CSS:

    • 描述: 在Vue中实现瀑布流布局的库。
    • 安装命令: npm install vue-masonry-css
  10. Vue-Router-Scroll:

    • 描述: 管理Vue Router的滚动位置。
    • 安装命令: npm install vue-router-scroll

 这些包代表了Vue生态系统中的一小部分,也可以根据项目需求和功能要求选择合适的包。

以下是一些vue项目的基本功能实现

1.V-ROUTER的基本用法

// main.js
import Vue from 'vue';
import VueRouter from 'vue-router';
import App from './App.vue';

Vue.use(VueRouter);

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
  // ...其他路由
];

const router = new VueRouter({
  routes,
});

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

在组件中时

<!-- App.vue -->
<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

2.Vuex的基本使用方法

// store.js
import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    count: 0,
  },
  mutations: {
    increment(state) {
      state.count++;
    },
  },
  actions: {
    incrementAsync({ commit }) {
      setTimeout(() => {
        commit('increment');
      }, 1000);
    },
  },
});

// 在组件中引入
import { mapState, mapMutations, mapActions } from 'vuex';

export default {
  computed: {
    ...mapState(['count']),
  },
  methods: {
    ...mapMutations(['increment']),
    ...mapActions(['incrementAsync']),
  },
};

 

3.Axios的使用

// 在组件或服务中引入
import axios from 'axios';

// 发送 GET 请求
axios.get('/api/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

// 发送 POST 请求
axios.post('/api/data', { key: 'value' })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

4. Element UI:

// 在main.js中引入
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);
 

<!-- 在组件中使用 Element UI 的组件 -->
<template>
  <el-button type="primary">Primary Button</el-button>
</template>

 

除此之外,还有一些vue基本使用方法:

1. 插值和绑定:

总体而言,Vue.js的魅力体现在其简洁、灵活、易学易用的设计理念,使得开发者可以更高效地构建现代化的Web应用。

  • 插值: 使用 {{ }} 插值语法将数据渲染到模板中。

  • <template>
      <div>
        {{ message }}
      </div>
    </template>

    <script>
    export default {
      data() {
        return {
          message: 'Hello, Vue!',
        };
      },
    };
    </script>
    动态绑定属性: 使用 v-bind 或简写 : 来动态绑定元素属性。

  • <template>
      <img :src="imageUrl" alt="Image">
    </template>

    <script>
    export default {
      data() {
        return {
          imageUrl: 'path/to/image.jpg',
        };
      },
    };
    </script>

  • 2. 指令:

  • v-if 和 v-else: 条件渲染元素。

  • <template>
      <div>
        <p v-if="isTrue">This is true</p>
        <p v-else>This is false</p>
      </div>
    </template>

    <script>
    export default {
      data() {
        return {
          isTrue: true,
        };
      },
    };
    </script>
    v-for: 循环渲染列表。

  • <template>
      <ul>
        <li v-for="item in items">{{ item.name }}</li>
      </ul>
    </template>

    <script>
    export default {
      data() {
        return {
          items: [
            { name: 'Item 1' },
            { name: 'Item 2' },
            // ...
          ],
        };
      },
    };
    </script>

  • 3. 事件处理:

  • v-on 和 @: 绑定事件处理函数。
  • <template>
      <button @click="handleClick">Click me</button>
    </template>

    <script>
    export default {
      methods: {
        handleClick() {
          alert('Button clicked!');
        },
      },
    };
    </script>

  • 4. 表单绑定:

  • v-model: 双向绑定表单元素。
  • <template>
      <input v-model="inputValue" placeholder="Type something">
      <p>{{ inputValue }}</p>
    </template>

    <script>
    export default {
      data() {
        return {
          inputValue: '',
        };
      },
    };
    </script>

  • 5. 计算属性和侦听器:

  • computed: 计算属性,可以根据依赖的数据计算得到一个新值。

  • <template>
      <p>{{ reversedMessage }}</p>
    </template>

    <script>
    export default {
      data() {
        return {
          message: 'Hello, Vue!',
        };
      },
      computed: {
        reversedMessage() {
          return this.message.split('').reverse().join('');
        },
      },
    };
    </script>
    watch: 侦听器,用于监听数据的变化。

  • <template>
      <p>{{ count }}</p>
    </template>

    <script>
    export default {
      data() {
        return {
          count: 0,
        };
      },
      watch: {
        count(newValue, oldValue) {
          console.log(`Count changed from ${oldValue} to ${newValue}`);
        },
      },
    };
    </script>
    这些是Vue 2.x中一些基本的语法和概念。

  • 相比其他的一些课程,我更能体会与感受vue.2x的魅力

  • 简单易学: Vue.js 的核心库只关注视图层,相比于其他框架,它的学习曲线更为平缓。即使是初学者,也可以迅速上手并开始构建应用。

  • 灵活性: Vue 提供了一套灵活的组件系统,使开发者能够以组件为基础构建应用。这种组件化开发风格有助于代码的可维护性和复用性。

  • 响应式数据绑定: Vue.js 使用了响应式数据绑定机制,通过数据驱动视图。当数据发生变化时,视图会自动更新,无需手动操作DOM,使得代码更为简洁和易维护。

  • 虚拟DOM: Vue.js 使用虚拟DOM来优化DOM操作,通过比较前后两个虚拟DOM树的差异,最小化实际DOM的更新。这提高了应用的性能和效率。

  • 渐进式框架: Vue 被设计为渐进式框架,可以逐步引入到项目中。你可以选择仅使用Vue核心特性,也可以结合其它库和工具,例如Vue Router、Vuex等。

  • 生态系统: Vue 生态系统庞大而丰富,拥有大量的第三方库和插件,可以满足各种需求。这包括 UI 框架(如Element UI、Vuetify)、路由管理(Vue Router)、状态管理(Vuex)等。

  • 活跃的社区和文档: Vue 拥有一个积极活跃的社区,开发者们在社区中分享经验、解决问题,使得学习和开发过程更为顺畅。官方文档也非常详尽,提供了清晰的指导和示例。

  • 良好的性能: 虽然 Vue.js 不是唯一关注性能的框架,但其设计上的一些特点,如虚拟DOM和合理的更新策略,使得Vue在性能方面表现出色。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值