使用Vue3.0 beta4与Vite0.6.0制作一个todoList
安装Vite的Github地址:Vitenpx create-vite-app <project-name>目录结构(README和Licence是自己加的)可以看到vue版本是最新beta版4.0{"name": "vite6","version": "0.0.0","scripts": {"dev": "vite","build"...
·
安装
Vite的Github地址:Vite
npx create-vite-app <project-name>
目录结构(README和Licence是自己加的)
可以看到vue版本是最新beta版4.0
{
"name": "vite6",
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "vite build"
},
"dependencies": {
"vue": "^3.0.0-beta.4"
},
"devDependencies": {
"@vue/compiler-sfc": "^3.0.0-beta.4",
"vite": "^0.6.0"
}
}
使用
改造App.vue
<template>
<div>
<h1>Vue3配合Vite的TodoList</h1>
<input placeholder="请输入代办事项" v-model="text" @keyup.enter="addOne"/>
<button @click="addOne">提交</button>
<p v-for="(list,i) in todoList" :key="i">
<span>{{list.text}}</span>
<button @click.prevent="deleteOne(list.text)">删除</button>
</p>
</div>
</template>
<script>
import { ref, reactive, onMounted, computed } from "vue";
export default {
setup() {
const text = ref("")
const todo = reactive({
list: [{text:'2112'},{text:'22332'}]
});
const todoList = computed(() => todo.list)
const addOne = () => {
if(text.value === ""){
alert("请输入内容")
return
}
const content = {"text":text.value}
todo.list.push(content)
text.value = ""
console.log(todo.list);
};
const deleteOne = (listText) => {
console.log("删除"+listText);
todo.list = todo.list.filter(list => list.text !== listText)
console.log(todo.list);
};
onMounted(() => {
console.log("这是一个todoList");
});
return {
text,
todoList,
addOne,
deleteOne,
};
},
};
</script>
<style scoped>
h1 {
color: #4fc08d;
}
h1,
p {
font-family: Arial, Helvetica, sans-serif;
}
</style>
在这个例子中我用到了Vue3.0的新的composition Api,在setup函数中定义各种方法,变量与生命周期钩子。ref方法接受一个值并返回一个响应式且可变的ref对象。reactive中取得一个对象并返回原始对象的响应式代理。ref对象在模板中访问时,从ref返回的引用将自动解包,因此模板中使用不需要.value,在setup中访问必须需要.value属性。
效果
总结
Vue3.0配合Vite的使用可以做到不需要编译即可完成热更新,十分期待后面对Vue3.0的更好的支持
项目地址: vue3.0+vite6.0
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)