
TodoMVC是一个示例项目,它使用目前流行的不同JavaScript框架的来实现同一个Demo,来帮助你熟悉和选择最合适的前端框架。学习框架最直接有效的方式就是上手练习,接下来我们将用Vue.js来完成TodoMVC的示例。
基础进阶:使用生命周期实现
官网地址:/
在 Vscode 软件在打开集成终端
vue cerate 项目名 创建项目cd 项目名 进入创建好的项目内npm run serve启动项目TodoDemo.vue、TodoContent.vue、TodoFoot.vue、TodoHeader.vue、TodoItem.vueTodoDemo.vue引入 App.vueTodoItem.vue引入 TodoContent.vueTodoContent.vue、TodoFoot.vue、TodoHeader.vue引入TodoDemo.vue<template><div><h1>Todos</h1><!-- 将`TodoContent.vue`、`TodoFoot.vue`、`TodoHeader.vue`引入`TodoDemo.vue` --><TodoHeader /><TodoContent /><TodoFoot /></div>
</template><script>
import TodoContent from './TodoContent.vue'
import TodoFoot from './TodoFoot.vue'
import TodoHeader from './TodoHeader.vue'
export default {components: { TodoHeader, TodoContent, TodoFoot },}
</script><style>
</style>
<template><div><input type="checkbox"><input type="text"><button>添加</button></div>
</template><script>
export default {
}
</script>
<style>
</style>
<template><div><span>1 item left</span><div class="type-btns"><button>all</button><button>active</button><button>completed</button></div><button>clear completed</button></div>
</template><script>
export default {
}
</script>
<style>
</style>
<template><li><template v-if="true"><input type="checkbox"><span></span><span>×</span></template><input v-else type="text"></li>
</template><script>
export default {
}
</script>
<style>
</style>
<template><div><ul><!--`TodoItem.vue`引入 `TodoContent.vue`--><TodoItem /></ul></div>
</template><script>
import TodoItem from './TodoItem.vue'
export default {components: { TodoItem },
}
</script>
<style>
</style>
json-server --watch data.json -p 3008 启动后端数据{"todos":[{"id": "yht67h9","text": "律师函警告","done": false},{"id": "yh87sdy","text": "喜欢唱,跳,rep,篮球","done": true},{"id": "thy52dq","text": "你干嘛,哎呀","done": false}]
}
Vue 组件生命周期:vue组件的生命周期(组件的一生:开始、经历、结束):vue 组件提供的一些钩子函数,这写函数会在组件的不同阶段自动执行
实现功能前需要:
npm i axios功能一:实现后端数据的导入
v-for 进行数据的传递<template><div><ul v-if="todos.length"><!-- `TodoItem.vue`引入 `TodoContent.vue` --><!-- 组件的循环也可以使用 v-for --><!-- :text="" 传递 text --><TodoItem v-for="todo in todos" :key="todo.id" :text=""/></ul></div>
</template><script>
import TodoItem from './TodoItem.vue'
import axios from 'axios' //
export default {data() {return {todos: []}},components: { TodoItem },async created (){// 数据 事件 ... 关联完成// 就可以修改 data了// 在组件实例处理完所有与状态相关的选项后调用// 获取数据库 方法一:// ('localhost:3008/todos').then( res => {// console.log(res.data)// })// 方法二const res = ('localhost:3008/todos')dos = res.data},}
</script><style></style>
<template><li><template v-if="true"><input type="checkbox"><span>{{text}}</span><span>×</span></template><input v-else type="text"></li>
</template><script>
export default {// 接输 textprops: ['text']
}
</script><style></style>
功能二:实现数据的删除
methods: {// 写的都是函数,不一定都是事件,也可能写功能// 删除功能del(id){dos = dos.filter(todo => todo.id !== id)}}
TodoContent.vue
<ul v-if="todos.length"><!-- `TodoItem.vue`引入 `TodoContent.vue` --><!-- 组件的循环也可以使用 v-for --><!-- :text="" 传递 text --><TodoItem v-for="todo in todos" :key="todo.id" :text="" :delTodo="del" :id="todo.id"/></ul>
TodoItem.vue
export default {// 接输 textprops: ['text','delTodo','id'],methods: {//
本文发布于:2024-02-13 18:06:42,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1715576218253692.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |