>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 19601 个阅读者 刷新本主题
 * 贴子主题:  vue3.0-基本特性和用法 回复文章 点赞(0)  收藏  
作者:mary    发表时间:2021-09-05 01:51:10     消息  查看  搜索  好友  邮件  复制  引用

1.路由配置

vue3.0使用createRouter来创建Vue Router实例

之前用构造函数的方式

createRouter, createWebHashHistory
const router = createRouter({
  history: createWebHashHistory(),
  [
{
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    component: () => import('../views/About.vue')
  }
  ]
})
export default router

2.初始化状态

vue3.0通过setup方法初始化状态

调用ref()方法返回一个响应式的对象

在setup中对ref返回的数值进行操作时,需要通过.value来获取

// value1只有一个value属性
setup() {
    let value1 = ref('disk')
    let ienter = () => {
      console.log(value.value);
    }
    let addValue1 = () => {
      value1.value ++
    }
    return {
      value, ienter,addValue1
    }
  }

3.计算属性computed方法和监听器watch方法

watch方法包含两个参数,两个参数都是function

import { ref, toRefs, computed, watch } from 'vue'

setup() {
    let value1 = ref('disk')
    let ienter = () => {
      console.log(value.value);
    }
    let addValue1 = () => {
      value1.value ++
    }
    let douValue1 = computed(() => value1.value * 2)
    watch(() => value1.value, val=>{
      console.log(val)
    })
    return {
      value, ienter,addValue1, douValue1
    }
  }

4.获取路由

vue3.0通过getCurrentInstance方法获取当前组件的实例

通过getCurrentInstance方法的ctx属性获得当前上下文

通过计算computed获取store.state.name的值

import { ref, toRefs, computed, watch, getCurrentInstance } from 'vue'

setup() {
    let value1 = ref('disk')
    let ienter = () => {
      console.log(value.value);
    }
    let addValue1 = () => {
      value1.value ++
    }
    let douValue1 = computed(() => value1.value * 2)
    watch(() => value1.value, val=>{
      console.log(val)
    })
    const { ctx } = getCurrentInstance()
    // 当前路由信息
    // ctx.$router.currentRoute.value
    
    return {
      value, ienter,addValue1, douValue1
    }
  }

5. Vuex使用

import Vuex from 'vuex'
export default Vuex.createStore({
  state: {
    name: 'licky'
  },
  mutations: {
    setName(state, payload) {
      state.test.a = payload
    }
  },
  actions: {
  },
  modules: {
  }
})

setup() {
    let value1 = ref('disk')
    let ienter = () => {
      console.log(value.value);
    }
    let addValue1 = () => {
      value1.value ++
    }
    let douValue1 = computed(() => value1.value * 2)
    watch(() => value1.value, val=>{
      console.log(val)
    })
    const { ctx } = getCurrentInstance()
    // 当前路由信息
    // ctx.$router.currentRoute.value
    
    let name = computed(() => ctx.$store.state.name)

    let editName = () => {
      ctx.$store.commit('setName', 'new Name zzz')
    }

    return {
      value, ienter,addValue1, douValue1, name, editName
    }
  }

----------------------------
原文链接:https://www.jianshu.com/p/fdffd1d2a12a

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2021-09-11 10:29:03 重新编辑]
  Java面向对象编程-->集合(下)
  JavaWeb开发-->Servlet技术详解(Ⅰ)
  JSP与Hibernate开发-->持久化层的映射类型
  Java网络编程-->Java网络编程入门
  精通Spring-->计算属性和数据监听
  Vue3开发-->Vue CLI脚手架工具
  好消息:《精通Vue.js:Web前端开发技术详解》出版了!
  前端面试官指导前端面试攻略
  Vue项目PWA化
  JavaScript实现睡眠函数
  vue 项目中使用loadsh 的 防抖(debounce)和节流(throttle...
  拯救React的hooks:react的问题和hooks的作用
  Vue CLI内网安装(禁止运行vue指令解决方案)
  css 实现不定数量的tab切换和页面切换
  vue+file-saver+jszip实现批量导出图片
  vue导出pdf格式文件
  理解前后端分离的概念
  H5定位终极解决方案
  CSS padding(填充)
  JavaScript HTML DOM EventListener
  JavaScript 函数 的定义和使用
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。