当前位置:首页 > 技术分析 > 正文内容

基于 Vue3.0 知乎专栏示例项目Vue3-Zhihu

ruisui883周前 (05-28)技术分析18

今天给小伙伴们分享一个vue3.0知乎实战项目示例Vue3Zhihu

vue3-zhihu 基于vue3.x+vuex+vue-router4构建的知乎专栏示例。汇集了vue3相关技术知识点,旨在让大家更快入手vue3项目开发。

快速安装

# 克隆项目
git clone https://github.com/huanggengzhong/zhihu-vue3.0.git

# 进入目录
cd zhihu-vue3.0

# 安装依赖
npm install

# 本地开发
npm run serve

# 打包项目
npm run build

vue3整体下来有些类似React Hook的感觉。只要是能简化代码,提升性能都有必要去学习下。

知识点

setup(props, this(上下文对象))

vue2.x中data、methods、watch等全部都用对应的新增api写在setup()函数中。

  • 执行时机在beforecreate与created之间。vue3也是取消了这两个钩子,统一用setup代替;
  • 所有方法函数都得调用api写在setup中;
  • return出去的数据,类似vue2.x中data(){return{...}};

ref()函数

ref也是创建响应式数据,区别在于要用xxx.value才能访问到数据值,推荐用ref,然后配合reactive一起使用。

<template>
  <div>
    <!-- setup的使用 -->
    <h1>{{count}}</h1>
    <button @click="increase">加</button>
  </div>
</template>
<script lang="ts">
import { ref } from "vue";
export default {
  setup() {
    const count = ref(0);
    const increase = () => {
      count.value++; //注意这里要用value
    };
    return {
      count,
      increase
    };
  }
};
</script>

reactive({})函数

该函数传入一个对象,里面的数据会变成响应式的数据,类似于react中的state。

<template>
  <!-- reactive函数的使用 -->
  <div>
    <h1>{{data.count}}</h1>
    <h1>{{data.double}}</h1>
    <button @click="data.increase">加</button>
  </div>
</template>
<script lang="ts">
import { ref, computed, reactive } from "vue";
interface DataProps {
  count: number;
  double: number;
  increase: () => void;
}
export default {
  setup() {
    const data: DataProps = reactive({
      //这里传入的是对象
      count: 0,
      increase: () => {
        data.count++;
      },
      double: computed(() => data.count * 2)
    });
    return {
      data
    };
  }
};
</script>

toRefs()函数

用 toRefs 函数来包裹 reactive 数据,用来添加响应式。

<template>
  <!-- 使用toRefs来去除多余的data -->
  <div>
    <h1>{{count}}</h1>
    <h1>{{double}}</h1>
    <button @click="increase">加(使用toRefs)</button>
  </div>
</template>
<script lang="ts">
import { ref, computed, reactive, toRefs } from "vue";
interface DataProps {
  count: number;
  double: number;
  increase: () => void;
}
export default {
  setup() {
    const data: DataProps = reactive({
      count: 0,
      increase: () => {
        data.count++;
      },
      double: computed(() => data.count * 2)
    });
    // 这里用toRefs来包裹,使它变为响应式数据
    const refData = toRefs(data);
    return {
      // 这里解构
      ...refData
    };
  }
};
</script>

computed() 函数

该函数用来创造计算属性,和过去一样,它返回的值是一个ref对象。

vue3全新生命周期(只能在setup中使用)

  • beforeCreate -> use setup()
  • created -> use setup()
  • beforeMount -> onBeforeMount
  • mounted -> onMounted
  • beforeUpdate -> onBeforeUpdate
  • updated -> onUpdated
  • beforeDestroy -> onBeforeUnmount
  • destroyed -> onUnmounted
  • errorCaptured -> onErrorCaptured

好了,以上是vue3的一些简单分享,后续会使用vue3开发一个实例项目,届时也会分享出来。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4369.html

标签: vue案例
分享给朋友:

“基于 Vue3.0 知乎专栏示例项目Vue3-Zhihu” 的相关文章

发行版Vanilla OS 2发布稳定版:彻底重写、改变使用Linux的方式

Vanilla OS 是去年崭露头角的 Linux 发行版,最初的 1.0 版本基于 Ubuntu 构建 —— 亮点之一是系统核心“不可变”。后来改用 Debian 测试分支 (Debian Sid),免费且开源,默认桌面环境是 GNOME。什么是不可变 Linux 发行版?不可变发行版确保操作系统...

html5+css3做的响应式企业网站前端源码

大家好,今天给大家介绍一款,html5+css3做的响应式企业网站前端源码 (图1)。送给大家哦,获取方式在本文末尾。首页banner幻灯片切换特效(图2)首页布局简约合理(图3)关于我们页面(图4)商品列表(图5)商品详情(图6)服务介绍(图7)新闻列表(图8)联系我们(图9)源码完整,需要的朋友...

双子座应用程序推出模型切换器以在Android上访问2.0

#头条精品计划# 快速导读谷歌推出了Gemini 2.0 Flash实验版,现已在其安卓应用中可用,之前仅在gemini.google.com网站上提供。新版本的15.50包含模型切换器,用户可以在设置中选择不同模型,包括1.5 Pro、1.5 Flash和2.0 Flash实验版。谷歌提醒,2.0...

多项修正 尼康D4s发布最新1.10版固件

尼康公司与2014年8月27日发布了D4s的最新固件,固件版本号为C:1.10。这次固件升级,主要解决了一些BUG,并且对拍摄菜单与相机操作做了一定调整。下面是本次新固件的具体信息:尼康发布D4s最新C固件 1.10版对C固件升级到1.10版所作的修改:当选定运动VR模式并换上 AF-S 尼克尔 4...

《暗黑破坏神 2:重制版》PC 版 2.3 版本发布,支持英伟达 DLSS

IT之家 12 月 3 日消息,暴雪为《暗黑破坏神 2:重制版》PC 版发布了更新 2.3 版本,添加了“离线难度缩放”滑块(玩家可以在单人游戏时增加挑战和奖励的级别)、多项辅助功能和用户界面改进,以及英伟达 DLSS 支持。玩法改进:玩家现在可以在离线游戏的选项菜单中使用“游戏难度等级”,它提供与...

Python中的11 种数组算法

1. 创建数组 创建数组意味着留出一个连续的内存块来存储相同类型的元素。在大多数语言中,您可以在创建数组时指定数组的大小。假设您正在书架上整理一组书籍,并且您需要为正好 10 本书预留空间。功能架上的每个空间都对应于数组中的一个索引。# Example in Python arr = [1, 2,...