vue3变化+vue3项目的创建

2023-11-19

VUE3新特性

createApp

Vue 3 中,改变全局 Vue 行为的 API 现在被移动到了由新的createApp方法所创建的应用实例上。

vue3.0中使用createApp 来创建vue实例

import { createApp } from 'vue' 
import App from './App.vue' 
const app = createApp(App); 
app.mount('#app');

main.js 下加载routervuex 

import { createApp } from 'vue' 
import App from './App.vue' 
import router from './router' 
import store from './store'

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

setup函数

1、简介

setup函数是vue3中专门为组件提供的新属性

2、执行时机

创建组件实例,然后初始化props,紧接着就调用setup函数,会在beforeCreate钩子之前被调用。

3、模板中使用

如果setup返回一个对象,则对象的属性将会被合并到组件模板的渲染上下文。

4、如何使用

<template>
  <div>
    {{name}}
  </div>
</template>

<script>
import { reactive } from "vue" 
export default {
  setup(props){
    const state = reactive({ 
      name:'abc'
    })
    return state
  }
}
</script>

注意:在setup()函数无法访问到this

reactive函数

1、简介

reactive()函数接收一个普通对象,返回一个响应式的数据对象

2、基本语法

按需导入reactive函数
import { reactive} from "vue"

创建响应式数据对象
const state = reactive({ id:1 })

3、定义响应式数据供template使用

1)按需导入reactive函数
import { reactive} from "vue"

2)在setup()函数中调用reactive()函数,创建响应式数据对象
setup(){
  //创建响应式数据对象
  const state = reactive({ 
    name:'abc'
  })
  //setup函数中将响应式数据对象return出去供template使用
  return state
}

3)在template中访问响应式数据
<template>
  <div>
    {{name}}
  </div>
</template>

ref的使用

1、简介

ref()函数用来根据给定的值创建一个响应式的数据对象,ref()函数调用的返回值是一个对象,这个对象上只包含一个value属性

2、基本语法

1)按需导入ref函数
import { ref } from "vue"

2)在setup()函数中调用ref()函数,创建响应式数据对象
setup(){
  var c = ref(10);	//初始化值为10 return {c}
}

3)在template中访问响应式数据
<template>
  <div>
    {{c}}
  </div>
</template>

toRefs的使用

1、简介

toRefs()函数可以将reactive()创建出来的响应式对象,转换为普通对象,只不过这个对象上的每个属性    节点,都是ref()类型的响应式数据

2、基本语法

1)按需导入toRefs函数
import { reactive ,toRefs } from "vue";

2)...toRefs(state)创建响应式数据对象
setup(){
  let state = reactive({id:10}); 
  return {
    ...toRefs(state)
  };
}

3)在template中访问响应式数据
<template>
  <div>
    <p>
      {{id}}
    </p>
  </div>
</template>

computed计算属性的使用

1、简介

computed()用来创建计算属性,computed()函数的返回值是一个 ref 的实例

2、基本语法

1)按需导入computed()
import { reactive ,toRefs ,computed} from "vue";

2)在setup()函数中调用computed()函数
setup(){
  let state = reactive({ 
    id:10,
    n1:computed(()=>state.id+1)	//计算属性的方式
  });
}

3)在template中访问响应式数据
<template>
  <div>
    <p>
      {{n1}}
    </p>
  </div>
</template>

watch的使用

1、简介

watch() 函数用来监视某些数据项的变化,从而触发某些特定的操作

2、基本语法

1)按需导入watch()
import { reactive ,toRefs ,watch} from "vue";

2)在setup()函数中调用watch()函数
setup() {
  let state = reactive({ 
    id:10,
  });
  watch(() => console.log(state.id))
},

生命周期钩子函数

1、基本语法

1)新版的生命周期函数,可以按需导入到组件中,且只能在 setup() 函数中使用
import { onMounted, onUpdated, onUnmounted} from "vue";

2)在setup()函数中调用computed()函数
setup(){
  onMounted(() => { 
    console.log('mounted!')
  })
  onUpdated(() => { 
    console.log('updated!')
  })
  onUnmounted(() => { 
    console.log('unmounted!')
  })
}

2、新旧对比

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

provideinject

1、简介

provide()和  inject()可以实现嵌套组件之间的数据传递。这两个函数只能在  setup()函数中使用。父级组件中使用 provide()函数向下传递数据;子级组件中使用 inject()获取上层传递过来的数据。

2、基本语法

父组件:
在setup()函数中调用provide()函数
setup() {
  provide('globalColor', 'red')
},

子组件:
在setup()函数中调用inject()函数
  setup(props){
    const state = reactive({
      color : inject("globalColor")
    })
    return state
  }

 Vue Router 4

现在我们安装 vue-router 版本的时候,默认还是安装的 3.x 版本的,由于 vue3 的更新发生很大的变化,所以为了兼容处理,vue-router 也将发布最新版 4.x 版本了。

1、创建方式

利用createRouter 用来创建router对象

import { createRouter } from 'vue-router'

const router = createRouter({ 
  routes
})

2、路由模式

createWebHashHistory路由模式路径带#

createWebHistory路由模式路径不带#()

import { createRouter,createWebHashHistory } from 'vue-router'

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

3、设置路由导航的两种方法

声明式

<router-link :to="/home">

编程式

router.push('/home')

声明式的常见方式

<router-link to="/home">home</router-link>

对象
<router-link :to="{path:'/home'}">home</router-link>

编程式的常见方式

字符串
router.push('/home')

对象
router.push({path:'/home'})

4routerroute的区别

router是全局路由的实例,VueRouter的实例 , 包括了路由的跳转方法,钩子函数等。

比如:$router.push

$route对象表示当前的路由信息,包含了当前 URL 解析得到的信息。包含当前的路径,参数,query对象等。

比如:$route.params

Vuex4

1、创建方式

创建 store 容器实例
import { createStore } from 'vuex' 
const state = {
  flag:true
};
var getters = { 
  getFlag(state){
    //具体的处理
  }
}
const actions={ 
  CHANGEFLAG({commit}){
    commit('CHANGEFLAG');
  }
};

const mutations = { 
  CHANGEFLAG(state){
    //具体的处理
  }
};
const store = createStore({ 
  state,
  getters, 
  actions, 
  mutations
})
//导出store对象
export default store;

2、组件中的使用

import { useStore } from "vuex";	//导入vuex 
export default {
  props:{
    name:String
  },
  setup(props) {
    let store = useStore(); //定义store 
    const state = reactive({});

    return {
      ...toRefs(state), 
      store
    };
  },
}

3vuex流程图

vue3项目的创建

安装vue-cli脚手架构建工具

vue-cli 提供一个官方命令行工具,可用于快速搭建大型单页应用。输入命令

cnpm install -g @vue/cli

查看版本,要求vue-cli版本在4.5以上,可以创建vue3项目

创建vue3项目

vue create 项目名称

手动安装

启动项目

浏览器访问

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue3变化+vue3项目的创建 的相关文章

  • 信号完整性之串扰

    1 前言 当PCB板上走线间距较近 一条走线上传输信号时 会在邻近的走线上引起噪声 这种现象称为串扰 串扰实际上是相邻走线之间的一种能量传递现象 下图显示了这种串扰现象 上方的走线传输信号 无论下方的走线是否有信号在传输 其两端都会产生噪声

随机推荐

  • MySQL避免索引失效

    create table staffs id int primary key auto increment name varchar 24 not null default comment 姓名 age int not null defau
  • 偶然发现的一篇相见很晚的文章:如何学好游戏编程

    今天偶然发现一篇介绍如何学好游戏编程的文章 相见恨晚呀 特转载 转帖地址 http new qzone qq com 79134054 blog 1226580538 如何学好游戏编程 此篇文章献给那些为了游戏编程不怕困难的热血青年 它的神
  • mac,macbook 连接蓝牙耳机播放音乐断断续续

    个人的情况是 mac本连的网线 用的无线鼠标 屋里80多号人都在用笔记本 应该也有好多开着无线的东西 解决方法 mac 或macbook 连接蓝牙耳机播放音乐断断续续的原因 在网上找了好多方法 试了各种方法 用各种命令 都完全没有效果 终于
  • VMware Workstation 17 pro 开机一段时间后,cpu飙高、卡死、、、

    报错截图 临时解决方案 找到VMware workstation 17 pro 安装包 右键 以管理员身份运行 修复 重启即可 永久解决 控制面板 程序 启用或关闭Windows功能 去掉 Windows 虚拟机监控程序平台 虚拟机平台 的
  • 《金融数据分析导论:基于R语言》习题答案(第一章)

    金融数据分析导论 基于R语言 是芝加哥大学的教授Ruey S Tsay所著 李洪成 尚秀芬 郝瑞丽翻译 机械工业出版社出版 是一本学习R语言和金融数据分析的很好的参考书籍 注 这些答案都是本人自己做出的结果 可能有错 仅供参考 发现有错的地
  • openstack用户管理笔记

    1 创建项目 1 1 创建项目 需要确认集群环境是否初始化完毕 实验初始化需要几分钟时间 访问控制节点IP dashboard 如果正常弹出登录页面即初始化完毕 假设控制节点IP为172 20 6 22 则访问地址为 172 20 6 22
  • ElasticStack运维必备技能-集群版

    一 背景介绍 首先 我们为什么要用这个产品呢 生产业务中必然会遇到大量业务日志需要分析 在日志量非常大的场景中 直接使用工具 如cat grep awk 就可以获得想要的信息 效率非常低 在这种情况下 如何快速搜索想要信息 如查询 排序 归
  • 车载操作系统汇总

    文章目录 车载操作系统 一 软件定义汽车 为什么是软件定义汽车 车载OS 承上启下 引领智能汽车发展 车载OS在车载智能计算平台中的位置 车载OS市场空间 车载操作系统 二 车控操作系统 什么是车控操作系统 车控操作系统的特点 车控操作系统
  • python3.6.5安装tensorflow_tensorflow(一)windows 10 python3.6安装tensorflow1.4与基本概念解读...

    一 安装 目前用了tensorflow deeplearning4j两个深度学习框架 tensorflow 之前一直支持到python 3 5 目前以更新到 故安装最新版体验使用 慢慢长征路 安装过程如下 anaconda3 5 PYTHO
  • vue跳转this.$router.push()同一路由如何强制刷新页面

    1 新建一个名为refresh vue的文件 放在你认为合理的任意目录 2 在refresh vue里添加 beforeRouteEnter 路由钩子 代码块 代码如下
  • Unity经典项目及作品

    1 Unity Chan Toon Shader https github com unity3d jp UnityChanToonShaderVer2 Project 2 Procedural Cave Generator https g
  • Tensorflow--------tf.nn库

    1 tf nn 提供神经网络相关操作 包括卷积神经 conv 池化操作 pooling 归一化 loss 分类操作 embedding RNN Evaluation 2 tf layers 高层的神经网络 和卷积神经有关 3 tf cont
  • 4 Tesseract-ocr 系列 : 开源OCR比较

    对开源OCR做一个简单的调研 网上找到的关于OCR的一些资料 国内参考资料 最好的开源或开放API的ocr引擎是什么 https www zhihu com question 22417946 列举了4中OCR 目录 1 Tesseract
  • LMDI(对数平均迪氏指数法)模型

    LMDI 对数平均迪氏指数法 模型 含stata代码以及计算参考文献 1 数据来源 见对应参考文献 2 时间跨度 无 3 区域范围 全国 4 指标说明 分享文件里面包括stata的程序文件 ado pkg sthlp 案例数据 中文的使用文
  • 服务器版dll修复工具,dll修复工具

    winmm dll是Windows多媒体相关应用程序接口 用于低档的音频和游戏手柄 缺少它可能造成部分软件无声音 当你的电脑提示 丢失winmm dll 或者 没有找到winmm dll 等类似错误信息 如果sqlite3 dll系统文件丢
  • UHD在window10下的安装

    matlab提供usrp工具箱 需要先安装UHD 才能安装相应的usrp UHD在windows10下的安装 官网有相应的Binary Installation和Building and Installing UHD from source
  • 移植tslib时ts_setup: No such file or directory、ts_open: No such file or director

    作者 Jack G 时间 2021 04 20 版本 上次修改时间 批注 ts test mt ts setup No such file or directory ts test ts open No such file or direc
  • [极客大挑战 2019] Knife1

    这道题原本很简单的可以用蚁剑连接 但是我的蚁剑多多少少有点问题 所以我用hackbar解题 提供另外一种思路 如果你和我一样的话也可以用hackbar 打开题目 发现直接给了我们连接密码 打开hackbar 先测试一下能否连接上 Syc p
  • 节点主动可信监控机制

    节点主动监控机制一般是通过调用在操作系统 虚拟机监视器 VMM 底层函数和中间件中的钩子函数来实现对上层行为的监控 监控过程过程可抽象为可信度量 可信决策 可信控制 同时 对系统中已有的安全机制 可信软件也可以通过策略输出和审计接入将它们纳
  • vue3变化+vue3项目的创建

    VUE3新特性 createApp 在 Vue 3 中 改变全局 Vue 行为的 API 现在被移动到了由新的createApp方法所创建的应用实例上 vue3 0中使用createApp 来创建vue实例 import createApp