created(){
.fetchPostList()},
: { searchInputValue(){
.fetchPostList() }}
: {
:{ handler:
, immediate: true }}
BaseButton
BaseIcon
BaseInput
{
: { BaseButton, BaseIcon, BaseInput }}<BaseInput v-model=
@keydown.enter=
/><BaseButton @click="search"> <BaseIcon name="search"/></BaseButton>//前端全栈学习交流圈:866109386//面向1-3经验年前端开发人员//帮助突破技术瓶颈,提升思维能力
Vue
upperFirst
camelCase
// Require
a base component contextconst requireComponent = require.context( ‘./components', false, /base-[\w-]+\.vue$/) requireComponent.keys().forEach(fileName => { // Get component config const componentConfig = requireComponent(fileName) // Get PascalCase name
component const componentName = upperFirst( camelCase(fileName.replace(/^\.\//,
).replace(/\.\w+$/,
)) ) // Register component globally Vue.component(componentName, componentConfig.
|| componentConfig)})//前端全栈学习交流圈:866109386//面向1-3经验年前端开发人员//帮助突破技术瓶颈,提升思维能力
<BaseInput v-model="searchText" @keydown.enter="search"/><BaseButton @click="search"> <BaseIcon name="search"/></BaseButton>
auth
posts
comments
Vuex.Store({
: { auth, posts, comments,
}})
camelCase
requireModule = require.context(
,
, /\.js$/)
modules = {}requireModule.keys().forEach(fileName => {
(fileName ===
)
moduleName = camelCase( fileName.replace(/(\.\/|\.js)/g,
) ) modules[moduleName] = {
:
, ...requireModule(fileName), }})
modules
modules
Vuex.Store({ modules})
{
:
, name:
, component:require(
).default}
{
:
, name:
, component:() => import(
)}
data() {
{ loading:
, error:
, post:
}}, watch: {
: { handler:
, immediate:
}},methods: { resetData() {
.loading =
.error =
.post =
.getPost(
.$route.
.id) }, getPost(id){ }}
data() {
{ loading:
, error:
, post:
}},created () {
.getPost(
.$route.
.id)},methods () { getPost(postId) {
}}
<router-view
(Emitted value instead
an instance
Error) Error compiling template: <div></div> <div></div> -Component template should contain exactly one root element. If you are using v-
on multiple elements, use v-
-
to chain them instead.
<template> <li v-for="route in routes" :key="route.name" > <router-link :to="route"> {{ route.title }} </router-link> </li></template>
functional:
,render(h, { props }) {
props.routes.map(route => <li key={route.name}> <router-link to={route}> {route.title} </router-link> </li> )}
//父组件<BaseInput :value=
label=
placeholder=
@input=
@focus=
value
placeholder
@input=
> </label></template>
<input :
=
v-bind=
v-
=
> computed: { listeners() {
{ ...
.$listeners, input:
=>
.$emit(
,
.target.
) } }}