Vue-5

使用在线HTML5、CSS3、VueJS和jQuery运行测试练习工具 为了提供便利,许多在线工具和平台被创建出来,以帮助开发人员在实时环境中练习和测试自己的代码。这些在线工具为开发人员提供了一个便捷的方式来练习和测试HTML5、CSS3、VueJS和jQuery的代码。您可以使用它们来尝试不同的代码示例,调试和优化您的代码,并实时查看结果。无论您是新手还是经验丰富的开发人员,这些工具都能帮助您提高开发技能,并加速Web应用程序的开发过程。在线VueJS编辑器提供了一个实时的开发环境,您可以在其中编写和测试VueJS代码。您可以修改源代码,并立即看到结果。 阅读详情

Vue 3 的优势

  • 更容易维护(组合式API)
  • 更快的速度
  • 更小的体积
  • 更优的数据响应

创建 Vue 3 项目

  • 前提环境条件:已安装 16.0 或更高版本的 Node.js
node -v
  • 创建一个 Vue 应用(下面的指令将会安装并执行 create-vue )
npm init vue@latest

setup

组合式API - setup选项

  • setup 函数在什么时候执行?
<script>
export default {
  setup() {
    console.log('setup函数比八大钩子中最早执行的beforeCreate函数还要早一点')
  },

  beforeCreate() {
    console.log('我是beforeCreate函数')
  }
}
</script>
  • setup 函数的"原始复杂写法"
<script>
export default {
  // 在 setup 的最后加上 return,才能使用 数据 和 函数
  setup() {
    // 数据
    const message = 'hello world'
    // 函数
    const logMessage = () => {
      console.log(message)
    }
    return {
      message,
      logMessage
    }
  }
}
</script>
  • setup 函数的"语法糖写法"
<script setup>
// 数据
const message = 'hello world'
// 函数
const logMessage = () => {
  console.log(message)
}
</script>

<template>
	<div>{{ message }}</div>
    <button @click="logMessage">点我</button>
</template>

<style>
</style>

reactive

接收一个对象类型的数据,返回一个响应式的对象

<script setup>
// reactive:接收一个对象类型的数据,返回一个响应式的对象
import { reactive } from 'vue'

// 对象类型
const state = reactive({
  count: 100
})

// 进行 +1 的函数
const setCount = () => {
  state.count++
}
</script>

<template>
  <div>{{ state.count }}</div>
  <button @click="setCount">+1</button>
</template>

ref

接收简单类型或者对象类型的数据传入并返回一个响应式的对象(推荐统一使用 ref )

<script setup>
// ref:接收简单类型或者对象类型的数据传入并返回一个响应式的对象
import { ref } from 'vue'

// 简单类型 或者 复杂数据类型
const count = ref(100)

// 注意:
//  1. 在脚本中访问数据,需要通过 .value 的形式
//  2. 在template中,.value不需要加
const setCount = () => {
  count.value++
}

console.log(count.value)

</script>

<template>
  <div>{{ count }}</div>
  <button @click="setCount">+1</button>
</template>

<style>
</style>

computed

计算属性函数

<script setup>
// const 计算属性 = computed(() => {
//   return 计算返回结果
// })

import { computed, ref } from "vue";

// 声明数据
const list = ref([1, 2, 3, 4, 5, 6, 7, 8, 9])
console.log(list.value) // 打印list的值

// 过滤 >5 的数据
const computedList = computed(() => {
  return list.value.filter(item => item > 5)
})

</script>

<template>
  <div>
    <div>原始数据:{{ list }}</div>
    <div>计算后的数据:{{ computedList }}</div>
  </div>
</template>

watch

作用:监听一个或者多个数据的变化,数据变化时执行回调函数

<script setup>
import { ref, watch } from "vue";
const count = ref(0)
const nickname = ref('张三')

const changeCount = () => {
  count.value++
}

const changeNickname = () => {
  nickname.value += '哈'
}

// 1. 监视单个数据的变化
// watch(ref对象, (newValue, oldValue) => {...})

// 2. 监视多个数据的变化
// watch([ref对象1, ref对象2], (newArr, oldArr) => {...})

</script>

<template>
  <div>{{ count }}</div>
  <button>改数字</button>
  <div>{{ nickname }}</div>
  <button>改昵称</button>
</template>

immediate

<script setup>
import { ref, watch } from "vue";
const count = ref(0)
const nickname = ref('张三')

const changeCount = () => {
  count.value++
}

const changeNickname = () => {
  nickname.value += '哈'
}

// immediate 一进入页面就立即执行
watch(count, (newValue, oldValue) => {
  console.log(newValue, oldValue)
}, { immediate: true })

</script>

<template>
  <div>{{ count }}</div>
  <button>改数字</button>
  <div>{{ nickname }}</div>
  <button>改昵称</button>
</template>

deep

  • 集体式的深度监视,只要有一个变化了就会执行函数
<script setup>
import { ref, watch } from "vue";
const count = ref(0)
const nickname = ref('张三')

const changeCount = () => {
  count.value++
}

const changeNickname = () => {
  nickname.value += '哈'
}

// deep 深度监视,默认 watch 进行的是浅层监视
//      const ref1 = ref(简单类型)  可以直接监视
//      const ref2 = ref(复杂类型)  监视不到复杂类型内部数据的变化
watch(count, (newValue, oldValue) => {
  console.log(newValue, oldValue)
}, {
  immediate: true,
  deep: true
})

</script>

<template>
  <div>{{ count }}</div>
  <button>改数字</button>
  <div>{{ nickname }}</div>
  <button>改昵称</button>
</template>
  • 精确的为某一个元素对象进行深度监视,它变化了才会触发函数
<script setup>
import { ref, watch } from "vue";
const userInfo = ref({
  name: 'zs',
  age: 18
})

const setUserInfo = () => {
  userInfo.value.age++
}

// 深度监视之"精准定位"
watch(() => { userInfo.value.age }, (newValue, oldValue) => {
  console.log(newValue, oldValue)
})

</script>

<template>
  <div>{{ userInfo.age }}</div>
  <button @click="setUserInfo">改年龄</button>
</template>

生命周期

选项式API组合式API
beforeCreate/createdsetup
beforeMountonBeforeMount
mountonMounted
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeUnmountonBeforeUnmount
unmountedonUnmounted
<script setup>
import { onMounted } from 'vue';

// beforeCreate 和 created 的相关代码一律放在 setup 中
const getList = () => {
  console.log('发送请求成功')
}
getList()

// 如果有些代码需要在 mounted 生命周期中执行,就调用对应函数
onMounted(() => { console.log('mounted生命周期函数 - 逻辑1') })

// 可以使用多次 mounted,并不会冲突,它会按顺序执行
onMounted(() => { console.log('mounted生命周期函数 - 逻辑2') })
</script>

<template>
  <div></div>
</template>

<style>
</style>

父子数据传递

父级内容

<script setup>

// 父传子
// 1. 给子组件,添加属性的方式传值
// 2. 在子组件,通过props接收

import { ref } from "vue";
import SonCom from '@/components/son-com.vue'   // 局部组件(导入进来就能用)

const money = ref(100)
const makeMoney = () => {
  money.value++
}
const reduce = () => {
  money.value--
}
</script>

<template>
  <div>
    <h3>这是父组件的地盘</h3>
    <hr>
    <SonCom info="父组件的余额: " :num="money" @reduceMoney="reduce"></SonCom>
    <hr>
    <h3>还是父组件的地盘</h3>
    <div>当前余额: {{ money }}</div>
    <button @click="makeMoney">点击赚钱</button>
  </div>
</template>

<style>
</style>

子级内容

<script setup>

// 注意:由于写了 setup,所以无法直接配置 props 选项
// 所以:此处需要借助于"编译器宏"函数接收子组件传递的数据

const props = defineProps({
  info: String,
  num: Number
})

console.log(props.info)
console.log(props.num)

const emit = defineEmits(['reduceMoney'])
const payment = () => {
  emit('reduceMoney', 5)   // 通过emit触发父组件<SonCom>标签的reduceMoney属性
}
</script>

<template>
  <div>我是子组件</div>
  <div>{{ info }}{{ num }}</div> <!-- 对于props传递过来的数据,模板中可以直接使用 -->
  <button @click="payment">点击消费</button>
</template>

<style>
</style>

模板引用

父级内容

<script setup>

import TestCom from "@/components/test-com.vue";
import { onMounted, ref } from "vue";

// 模板引用 (可以用来获取dom元素,也可以用来获取组件)
// 1. 调用ref函数,生成一个对象
const inp = ref(null)

// 3. 在加载渲染完DOM后,才能访问到绑定的元素
//    这时候我们需要使用到 生命周期钩子函数"onMounted"
onMounted(() => {
  console.log(inp.value)  // 输出绑定的元素内容 <input type="text">
  inp.value.focus()       // 实现:进入页面立即聚焦输入框
})

// 4. 使用同样的方法,获取组件
const testRef = ref(null)


// 6. 渲染结束后,当用户点击按钮,将触发下面"获取组件的函数"
const getCom = () => {
  console.log(testRef.value)  // 输出该组件对象
  console.log(testRef.value.num)      // 输出该组件对象中的一些数据
  console.log(testRef.value.sayHi())  // 输出该组件对象中的一些数据


}
</script>

<template>
  <div>
    <!-- 2. 通过ref属性进行标识,完成绑定 -->
    <input ref="inp" type="text">
    <button>点击让输入框聚焦</button>
  </div>

  <!-- 5. 通过ref属性进行标识,完成绑定 -->
  <TestCom ref="testRef"></TestCom>
  <button @click="getCom">点击获取组件</button>
</template>

子级内容

<script setup>

const num = 999
const sayHi = () => { console.log('hi') }

// 上面定义的数据或方法,在 <script setup> 语法糖下,只能在内部自己使用
// 它不会开放给父组件访问
// 为了解决这种默认的限制,我们可以通过 defineExpose 编译宏指定哪些属性和方法允许父组件访问
defineExpose({
  num,
  sayHi
})

</script>

<template>
  <div>我是用于测试的文本,当前数量: {{ num }}</div>
</template>

跨层传递普通数据

基本介绍

  • 顶层组件通过 provide 函数提供数据
provide('key', 顶层组件中的数据)
  • 底层组件通过 inject 函数获取数据
const message = inject('key')

具体演示

  • 顶层组件
<script setup>
import CenterCom from '@/components/center.vue'
import { provide, ref } from 'vue'

// 1. 跨层级传递"普通数据"
provide('theme-color', 'That is pink')

// 2. 跨层级传递"响应式数据"
const money = ref(999)
provide('userMoney', money)

// 3. 跨层级传递"函数"
const earning = () => { money.value++ }
provide('earningFn', earning)
</script>

<template>
  <div>
    <h3>我是顶层组件</h3>
    <CenterCom></CenterCom>
  </div>
</template>
  • 中间层中间
<script setup>
import BottomCom from '@/components/bottom.vue'
</script>

<template>
  <div>
    <h3>我是中间层组件</h3>
    <BottomCom></BottomCom>
  </div>
</template>
  • 底层组件
<script setup>
import { inject } from 'vue';

// 接收顶层组件传递过来的数据
const themeColor = inject('theme-color')
const money = inject('userMoney')
const earning = inject('earningFn')
</script>

<template>
  <div>
    <h3>我是底层组件</h3>
    <div>颜色:{{ themeColor }}</div>
    <div>余额:{{ money }}</div>
    <button @click="earning">点我赚钱</button>
  </div>
</template>

Vue3.3 新特性

defineOptions

在 Vue3.3 中,引入了 defineOption 宏。
顾名思义,主要是用来定义 Options API 的选项。
可以用 defineOptions 定义任意的选项,props,emit,expose,slots除外,
因为这些可以使用 defineProps,defineEmit、defineXXX来做到
<script setup>

// 1. defineOptions 里面的代码,与 setup 平级
defineOptions({
  name: 'LoginIndex',
  // ... 这里写更多自定义属性
})

// 2. 这里写其他需要写在 setup 里面的代码
// ...
</script>

<template>
    <h3>Hello World</h3>
</template>

defineModel

原版的操作

  • 父级组件
<script setup>
import MyInput from "@/components//temp.vue"
import { ref } from "vue";
const txt = ref('123456')
</script>

<template>
  <div>
    <MyInput v-model="txt"></MyInput>
    {{ txt }}
  </div>
</template>
  • 子级组件
<script setup>
defineProps({
  modelValue: String
})
const emit = defineEmits(['update:modelValue'])

</script>

<template>
  <input 
    type="text" 
    :value="modelValue" 
    @input="e => emit('update:modelValue', e.target.value)"
  >
</template>

使用 defineModel

  1. 修改 vite.config.js 配置文件,在 vue( ) 括号里面加上{ script:{ defineModel: true } },具体如下所示:
vue({
      script: {
        defineModel: true
      }
    }),
  1. 重启服务
  2. 具体使用方法,如下所示
<script setup>
import MyInput from "@/components//temp.vue"
import { ref } from "vue";
const txt = ref('123456')
</script>

<template>
  <div>
    <MyInput v-model="txt"></MyInput>
    {{ txt }}
  </div>
</template>
<script setup>
import { defineModel } from "vue";
const modelValue = defineModel()

</script>

<template>
  <input 
    type="text" 
    :value="modelValue" 
    @input="e => modelValue = e.target.value"
  >
</template>

Pinia

概念简述

Pinia 是 Vue 的最新状态管理工具,是 Vuex 的替代品

回顾 Vuex 涉及哪些概念:
	state
	mutaions
	actions
	getters
	modules
Pinia 涉及的概念:
	state
	actions
	getters

注意:在实际开发项目的时候,关于Pinia的配置,可以在项目创建时自动添加,而手动添加的方式如下:

  1. 安装 Pinia 包: npm install pinia 或 npm i pinia
  2. 配置 Pinia:
import { createApp } from 'vue'
import { createPinia } from 'pinia'  // 导入 Pinia 包
import App from './App.vue'

const pinia = createPinia()    // 创建 Pinia 实例
const app = createApp(App)    // 创建根实例
app.use(pinia)    // pinia 插件的安装配置
app.mount('#app')   // 视图的挂载

基本使用(store)

在 src 文件夹下创建一个 store 文件夹,在 store 里面新建一个 js 文件,这里演示为 counter.js

import { defineStore } from "pinia"
import { computed, ref } from "vue"

// 定义store
// defineStore(仓库的唯一标识,() => { ... })

export const useCounterStore = defineStore('counter', () => {
  // 声明数据 state
  const count = ref(999)

  // 声明操作数据的方法 action
  const addCount = () => count.value++
  const reduceCount = () => count.value--

  // 声明基于数据派生的计算属性 getters
  const double = computed(() => count.value * 2)

  // 与上面类似
  const msg = ref('hello pinia')
  const changeMsg = () => { msg.value += '_plus' }

  // 返回要被访问的数据
  return {
    count,
    double,
    addCount,
    reduceCount,

    msg,
    changeMsg
  }
})
  • src/App.vue
<script setup>
import Son1Com from "@/components/Son1Com.vue";
import Son2Com from "@/components/Son2Com.vue";

import { useCounterStore } from "@/store/counter.js"
const counterStore = useCounterStore()

</script>

<template>
  <div>
    <h1>我是App.vue根组件 - {{ counterStore.count }} - {{ counterStore.double }}</h1>
    <button @click="counterStore.changeMsg">改变</button>
    {{ counterStore.msg }}
    <hr>
    <Son1Com></Son1Com>
    <Son2Com></Son2Com>
  </div>
</template>
  • src/components/Son1Com.vue
<script setup>
import { useCounterStore } from "@/store/counter.js"
const counterStore = useCounterStore()
</script>

<template>
  <div>
    <h3>我是Son1Com子组件 - {{ counterStore.count }} <button @click="counterStore.addCount">+</button></h3>
  </div>
</template>
  • src/components/Son2Com.vue
<script setup>
import { useCounterStore } from "@/store/counter.js"
const counterStore = useCounterStore()
</script>

<template>
  <div>
    <h3>我是Son2Com子组件 - {{ counterStore.count }} <button @click="counterStore.reduceCount">-</button></h3>
  </div>
</template>

异步实现(action)

  • src/store/channel.js
import { defineStore } from "pinia"
import { ref } from "vue";
import axios from "axios"

export const useChannelStore = defineStore('channel', () => {
  const channelList = ref([])
  const getList = async () => {
    const res = await axios.get('http://geek.itheima.net/v1_0/channels')
    
    // 解构: 在返回的信息中找到真正需要的数据
    const { data: { data: { channels } } } = res
    channelList.value = channels
  }
  return {
    channelList,
    getList
  }
})
  • src/App.vue
<script setup>

import { useChannelStore } from "@/store/channel.js"
const channelStore = useChannelStore()

</script>

<template>
  <div>
    <button @click="channelStore.getList">获取数据频道</button>
    <ul>
      <li v-for="item in channelStore.channelList" :key="item.id">{{ item.name }}</li>
    </ul>
  </div>
</template>

持久化存储插件

官方文档:https://prazdevs.github.io/pinia-plugin-persistedstate/zh/guide/

AI 插件

Github Copilot 插件安装步骤:

  • 登录 GitHub,试用 Copilot
  • 打开 VScode,搜索并安装插件 Copilot

Github Copilot 插件使用说明:

  • 删除键:表示不接受本次 AI 的智能生成代码
  • Tab键:表示接收本次 AI 的智能生成代码
  • Ctrl + Enter:查看更多方法
ifix5.8连接ab plc的点-通过rslinx 以ifix连接ab plc的点为例 1.先在rslinx上把plc的点导出为opc server 2.使用opc power tool 作为opc client 去连接 3.保存到项目的PDB文件夹下面,并且以节点名命名。 也可以不以节点名命名,系统自动会生成一个以节点名命名的这种文件,就显得很乱。 同时,项目的PDB目录下面必须还得拷过来一个de... 阅读详情

相关推荐

【经验分享】使用Keil5烧录代码遇到的问题及解决方法

本文介绍了在使用Keil5烧录代码过程中可能遇到的常见问题,主要为编译错误和下载失败,并提供了解决方案和注意事项。通过本文中提供的具体解决方案和注意事项,希望能够帮助读者更加顺利地进行Keil5烧录代码操作,提高开发效率和成果实现。

qq_63195670的博客 1万+

5分钟打造专业时间轴:timeline-vuejs让你的Vue应用瞬间升级

还在为你的Vue项目寻找一个既美观又实用的时间轴组件吗?timeline-vuejs就是那个能让你在5分钟内为应用添加专业级时间线功能的解决方案。这款轻量级的Vue时间轴组件专为现代Web开发者设计,无论你是要展示项目里程碑、个人成长记录还是历史事件,它都能完美胜任。 ## 从零到一:一个开发者的时间轴故事 让我先分享一个真实的故事。上周,我的同事小李接到了一个紧急任务:为公司的产品更新日志页

gitblog_00836的博客 304

2024最新版Anaconda Navigator安装使用指南

本文简要介绍如何下载安装Anaconda Navigator最新版,以及如何使用Python内核搭载来完成应用程序开发。

jackson_lingua的博客 1万+

如何在Vue项目中快速集成vuejs-datepicker:5分钟快速入门指南

想要为你的Vue.js应用添加一个功能强大且易于使用的日期选择器吗?vuejs-datepicker正是你需要的解决方案!这款简单易用的Vue.js日期选择器组件支持日期禁用、内联模式和多语言翻译,让日期选择变得轻松简单。本文将为你提供一个完整的5分钟快速入门指南,帮助你快速掌握这个实用的Vue日期选择器组件。 ## 什么是vuejs-datepicker? 🤔 vuejs-datepick

gitblog_01124的博客 972

电力电子技术复习笔记

通常在开关过程前后加入谐振,使开关开通前电压先降到0,关断前电流先降到0,消除开关过程电压、电流的重叠,降低它们的变化率,从而大大减小甚至消除开关损耗。小信号线性化模型的原理:忽略开关频率分量和开关频率谐波分量及其边频分量,建立占空比、输入电压等的低频扰动对变换器中的电压、电流影响的模型。解:可以利用变压器的变比改变输出电压大小,避免控制过程的占空比过小或过大,提高控制精度,同时有利于减轻输出电路中电力电子器件的耐压要求。驱动电路:用于控制功率半导体器件的开关,从而控制电路的电流和电压。

Miracle Fan的博客 1万+

CentOS7下NFS共享报错RPC问题的3种解决方案(含防火墙配置详解)

本文详细解析了CentOS7下NFS共享报错RPC问题的3种解决方案,包括防火墙配置详解。从基础连通性检查到RPC服务状态验证,再到精准开放必要端口和SELinux集成,提供全面的排查与解决指南,帮助用户快速解决'No route to host'等常见问题。

weixin_29274969的博客 452

vue中的浏览量_Laravel 5.3和vuejs实现文章浏览次数问题

Laravel 5.3和vuejs实现文章浏览次数问题:我的思路是这样的:1、文章详情页打开时,用js取得这个详情页的id。2、用js检查cookie中是否有该id,(1)如果没有,就向cookie中写入该id,并发送ajax请求,后台把浏览次数+1;(2)如果有该id,就不做任何操作,这样当刷新页面时就不会重复更新浏览次数。问题:js代码不知怎么写完整,详见下面js部分描述。代码:文章详情页视图...

weixin_39856803的博客 787

QT-使用ECharts显示地图,还有更多惊艳的图表等待你的使用

QT-使用ECharts显示地图前言一、使用步骤1.下载示例2. QT使用HTML文件配置3.使用HTML文件4. 数据交互及自适应总结注意:这个地图是百度的在线地图,需要百度API密钥和在联网的状态下使用。离线使用图表 前言 我上文QT图表chart-饼状图,使用qt自带的图表库charts来显示图表,实现数据可视化,但是QT自带的图表库显示效果并不佳,通俗说,就是不好看。 然而,有这么一个开源图表库,图表种类极多,并且效果良好,能够实现具有很好的视觉冲击的数据可视化。 它就是Apache ECharts

博咯的博客 4896

AWS Cloudfront支持vuejs的html5模式

vuejs的html5模式就是但没有发现文件名就重写到请求。注意,这里是重写,重写,重写,不是转发。

fxtxz2的专栏 615

从零构建RK3568视频处理管线:C++ V4L2捕获与RKMPP硬编解码实战

本文详细介绍了在RK3568平台上,使用C++语言从零构建高性能视频处理管线的实战过程。核心内容包括通过V4L2接口高效捕获摄像头视频流,并利用RKMPP硬件编码器实现零拷贝的H.264/H.265硬编码。文章深入讲解了设备初始化、DMA缓冲区管理、编码器参数配置以及主循环协同工作等关键步骤,旨在帮助开发者构建低延迟、高效率的嵌入式视频应用。

weixin_29193359的博客 84

ECU诊断功能测试:从理论到实践

ECU诊断功能是指通过特定的诊断协议与ECU进行通信,以获取ECU的状态信息、故障码、数据流等,并执行特定的诊断操作。诊断功能的主要目的是帮助开发人员和维修人员快速定位和解决ECU中的问题,确保车辆的安全性和可靠性。UDS协议是ISO 14229标准的一部分,定义了一系列的诊断服务,如读取故障码、清除故障码、读取数据流等。UDS协议基于CAN(Controller Area Network)总线,具有较高的灵活性和扩展性。读取故障码是诊断功能中最基本的操作之一。通过读取故障码,可以快速定位ECU中的问题。

闲人编程的博客 1806

5分钟构建专业级Vue时间轴组件:timeline-vuejs完整指南

在Vue.js应用开发中,如何优雅地展示时间线、历史事件或项目里程碑?timeline-vuejs是一个极简主义的Vue时间轴组件,专为开发者提供轻量级、高度可定制的解决方案。这款时间线组件不仅支持Vue 2和Vue 3双版本,而且打包后体积不足5KB,却能实现丰富的可视化效果。 ## 🚀 核心优势解析:为什么选择这个时间线组件? ### 极致轻量,性能卓越 timeline-vuejs的设

gitblog_01095的博客 299

大数据利器Hadoop:从基础到实战,一篇文章掌握大数据处理精髓!

在当今大数据时代,数据量的爆炸式增长对企业和技术提出了前所未有的挑战。如何高效地存储、处理和分析这些庞大的数据集,成为了亟待解决的问题。Hadoop作为一种分布式计算框架,应运而生,为大数据处理提供了有效的解决方案。Hadoop是一个由Apache软件基金会维护的开源项目,它基于Google的分布式文件系统(Google File System,GFS)和MapReduce计算模型设计。Hadoop的主要目标是处理大规模数据集,它可以在普通硬件集群上运行,从而降低了大数据处理的成本。

邓邓子的博客 8276

vue组件可视化_Vue HTML5音频可视化组件

vue组件可视化 视听 (vue-audio-visual) VueJS audio visualization components. VueJS音频可视化组件。 Vue HTML5 audio visualization components. Vue HTML5音频可视化组件。 An audio spectrum visualizer plugin for VueJS framewo...

cuk5239的博客 4430

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

vuejs学习5.2 vue-router的安装与配置

vue-routervue-routervue-router的安装vue-router的配置index.js文件vue实例中使用配置路由的映射关系设置默认路径——重定向修改为html5的history模式router-link属性补充代码跳转路由 vue-router vue-router是基于路由和组件的,将url路径和组件映射起来,在单页面中,页面路径的改变就是组件的切换 vue-router的安装 在不使用脚手架vueCLI时,通过webpack进行安装 npm install vue-router

qq_39225271的博客 490

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

html5 vue ajax,vuejs自己的ajax请求插件(vue

vuejs拥有自己的ajax请求插件vue-resource,vue-resource:通过 XMLHttpRequest 或 JSONP 发起请求并处理响应。vue-resource下载地址:https://github.com/vuejs/vue-resource上一篇:vuejs里面使用jquery的ajax与后台交互下一篇:vue的ajax插件resource应用2vuejs自己的ajax...

weixin_42301889的博客 277

hml5移动页面面试题_HML5视频播放器VUE组件

hml5移动页面面试题 Vue播放器 (vue-player) This is a html5 video component made in VueJS with to quickly add videos with placeholders and intros. 这是VueJS中制作的html5视频组件,用于快速添加带有占位符和简介的视频。 特征 (Features) full con...

cuk5239的博客 736

vuejs适合写什么项目_5个Vue.js项目实战教程

什么是Vue.js?Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue.js 采用自底向上增量开发的设计。Vue.js 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue.js 完全有能力驱动采用单文件组件和 Vue.js 生态系统支持的库开发的复杂单页应用。Vue.js 的目标是通过尽可...

weixin_39583162的博客 1437

vue笔记5 vueJS中的内置指令

一、基本指令 1、v­-cloak v­-cloak一般与display:none进行结合使用作用:解决初始化慢导致页面闪动的最佳实践 2、 v-­once 定义它的元素和组件只渲染一次,再次修改元素值,不会重新渲染了 <style> [v-cloak]{ display: no...

weixin_34336292的博客 251

在线HTML5,CSS3,VueJS,jQuery运行测试练习工具

在线HTML5,CSS3,VueJS,jQuery运行测试练习工具 在线HTML5,CSS3,VueJS,jQuery运行测试练习工具 本工具可以在线编辑HTML5,CSS3,VueJS,JavaScript,JQuery代码,并实时预览显示下载 https://tooltt.com/html/

Linux,Java,SpringBoot,Python,Lua略知一点 299

Vue时间轴组件终极指南:5分钟快速上手timeline-vuejs

在现代Web开发中,Vue时间轴组件已成为展示时间线数据的首选工具,特别是timeline-vuejs以其极简设计和强大功能脱颖而出。本文将带你从零开始,全面掌握这款Vue时间轴组件的使用方法,让你在短时间内构建出专业级的时间轴效果。 ## 为什么选择timeline-vuejs? **🚀 极致轻量**:核心代码体积小,不依赖额外大型库,确保项目性能不受影响。 **🎨 高度可定制**:提

gitblog_00588的博客 962

【vuejs】2/5vue学习笔记

### 准备开始 ------ #### 学员反馈 凃凃老师, 该拓展的一定要拓展, 即使有部分同学跟起来吃力 , 以后工作很可能在项目中遇到相似问题, 至少知道老师讲过 , 有对照也好解决. 可以说清楚有哪些必须掌握, 有哪些让有余力的同学掌握. #### 复习 - vue单文件方式 xxx.vue - 1:准备好配置文件 package.json(包描述文件&&...

南北极之间 227

vuejs常用指令_vue笔记5 vueJS中的内置指令

一、基本指令1、v­-cloakv­-cloak一般与display:none进行结合使用作用:解决初始化慢导致页面闪动的最佳实践2、 v-­once定义它的元素和组件只渲染一次,再次修改元素值,不会重新渲染了[v-cloak]{display: none;}v-cloak:解决初始化慢导致页面闪动 {{msg}} v-once: {{oncedata}} var app=new Vue({el:...

weixin_42467768的博客 229

vuejs学习5.4 vue-router

vue-router$route和 $router的区别导航守卫 $route和 $router的区别 $route表示活跃的路由 $router表示vue-router对象 导航守卫

qq_39225271的博客 275

Gamdl 搭配 Wrapper 完成 ALAC 无损音乐下载:三步装好并跑通

Apple Music 专辑上的"无损"标,到底能不能存成 ALAC 文件放本地?目前最稳的路子是用 Gamdl 搭配 Wrapper 做 ALAC 无损音乐下载:直连 API 只能拿到有损压缩流,走 Wrapper 才能取到可解密的 ALAC 流。 ## 为什么下 ALAC 必须带上 Wrapper Gamdl 是一个命令行下载器:你丢给它歌曲或专辑链接,它负责拉流、解密、写标签、落盘。默认

gitblog_01013的博客 849
上一篇: Vue-4
下一篇: 测试资源 URL
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值